JP2009134368A - データ記憶装置及びそのファームウェアの更新方法 - Google Patents
データ記憶装置及びそのファームウェアの更新方法 Download PDFInfo
- Publication number
- JP2009134368A JP2009134368A JP2007308070A JP2007308070A JP2009134368A JP 2009134368 A JP2009134368 A JP 2009134368A JP 2007308070 A JP2007308070 A JP 2007308070A JP 2007308070 A JP2007308070 A JP 2007308070A JP 2009134368 A JP2009134368 A JP 2009134368A
- Authority
- JP
- Japan
- Prior art keywords
- data
- firmware
- address
- update
- new
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】データ記憶装置のファームウェアの更新を効率的かつ安全に行う。
【解決手段】本発明の一実施形態において、HDDの新たなファームウェアは、更新前のファームウェア251によりデータ変換されて後、HDDに転送される。ファームウェア更新プログラム252は、自己のファームウェア251を使用して受信したデータ241をデータ逆変換し、新ファームウェア241を再生する。新ファームウェア241は、ファームウェアの一部である。ファームウェア更新プログラム252は、新ファームウェア241を更新後ファームウェア253に組み込む。更新前のファームウェアを使用して転送データを変換することで、ファームウェア転送における安全性を高めると共に、処理を効率的なものとすることができる。
【選択図】図4
【解決手段】本発明の一実施形態において、HDDの新たなファームウェアは、更新前のファームウェア251によりデータ変換されて後、HDDに転送される。ファームウェア更新プログラム252は、自己のファームウェア251を使用して受信したデータ241をデータ逆変換し、新ファームウェア241を再生する。新ファームウェア241は、ファームウェアの一部である。ファームウェア更新プログラム252は、新ファームウェア241を更新後ファームウェア253に組み込む。更新前のファームウェアを使用して転送データを変換することで、ファームウェア転送における安全性を高めると共に、処理を効率的なものとすることができる。
【選択図】図4
Description
本発明はデータ記憶装置及びそのファームウェアの更新方法に関し、特に、データ記憶装置のファームウェアを安全に更新するための手法に関する。
データ記憶を記憶するメディアとして、光ディスク、光磁気ディスク、磁気ディスクあるいは半導体メモリなどの様々な方式が知られている。これらメディアを使用してデータを記憶するデータ記憶装置において、メディアに保存されるユーザ・データを不正なアクセスから保護するため、そのユーザ・データを暗号化する技術が知られている。例えば、特許文献1は、磁気ディスクをメディアとして使用するハードディスク・ドライブ(HDD)において、磁気ディスクに記憶するユーザ・データを暗号化する技術の一例を開示している。
HDDは、内部に暗号用の鍵を有しており、それを磁気ディスクあるはROMに格納している。HDDは、ユーザ・データをホストから取得すると、それを暗号化して磁気ディスクに記録する。また、HDDは、磁気ディスクから読み出したユーザ・データを復号化してホストに転送する。HDD内において、ファームウェアに従って動作するMPUが全体的な制御処理を行う。また、ユーザ・データの暗号処理に使用する暗号鍵の管理も、MPUがファームウェアの命令列に従って行う。
HDDの出荷後に、HDDのファームウェアの更新を行うことがある。例えば、HDDに新たな機能を追加する、あるいは、HDDの設定パラメータを変更するために、HDDのファームウェアを更新する。すでに配布されているHDDをメーカが回収してファームウェアの更新を行うことは非効率であり、ファームウェアの更新が必要な場合は、新しいファームウェアが配布される。HDDが接続されているホスト・コンピュータは、ファームウェアをHDDにダウンロードすることで、ファームウェアを更新することができる。ファームウェア更新のためのHDDとホスト・コンピュータとの間におけるプロトコルが一般に存在し、HDDとホストとは、このプロトコルに従ってファームウェア更新のためのデータを送受信する。
特開2004−201038号公報
特開2007−257119号公報
上述のように、ファームウェアは、HDDの全体的な動作制御を行い、暗号鍵を含む制御データの管理を行う。従って、ファームウェアが知られると、暗号鍵の格納位置を含め、HDDの実装に関する詳細な情報やノウハウが漏洩してしまう。上述のように、ファームウェアの更新において、新たなファームウェアがネットワークあるいはホスト・コンピュータとHDDとの間を転送される。この転送データが解読されてコード・レベルに還元されると、ファームウェア全体の内容が解読者の手に渡ることが考えられる。ファームウェアを取得した解読者は、改変ファームウェアを得ることができるため、セキュリティ機能を代表とするデータ保護の仕組みが無効にされる危険性がある。
AESやDESなどの広く知られた堅牢な暗号技術を使用してファームウェアを暗号化し、その暗号化したファームウェアを送受信することで、コード・レベルのファームウェアが第三者に渡ることを防ぐことができる(例えば、特許文献2を参照)。しかし、このような暗号処理のためには複雑な処理が必要であり、また、暗号鍵の変更を行うためにはそのための処理が要求される。従って、データ記憶装置のファームウェアの更新を効率的かつ安全に行うための技術が要求される。
本発明の一態様に係るデータ記憶装置は、ファームウェアを格納する不揮発性メモリと、前記ファームウェアを更新するために、データ変換されている新データを受信するインターフェース回路と、前記ファームウェアに従って動作し、メディアへのアクセスを制御するプロセッサとを有する。前記プロセッサは、前記受信した新データを更新前の前記ファームウェアのデータでデータ逆変換することで前記新データを再生し、前記再生した新データを使用して前記ファームウェアを更新する。ファームウェア更新のためのデータを更新前のファームウェアのデータでデータ変換して転送することで、ファームウェアの更新を効率的かつ安全に行うことができる。
好ましくは、前記新データは、前記ファームウェアの一部のデータであって、前記ファームウェアの更新において変更される部分である。これにより、効率性と安全性をより高めることができる。さらに、前記コントローラは、前記新データが組み込まれるアドレスと異なるアドレスのデータで前記データ逆変換を行うことが好ましい。また、前記データ逆変換に使用されるデータのアドレス範囲は、前記ファームウェアのアドレス範囲の一部に限定されていることが好ましい。これらにより、ファームウェア更新における安全性をより高めることができる。
好ましい例において、前記プロセッサは、更新前の前記ファームウェアのアドレス長以下の値による剰余演算を使用して、前記データ逆変換に使用するデータのアドレスを決定する。さらに、前記プロセッサは、前記新データが組み込まれるアドレスを変換した値に対して、更新前の前記ファームウェアのアドレス長以下の値による剰余演算を行って、前記データ逆変換に使用するデータのアドレスを決定することが好ましい。これらにより、効率的かつ的確にアドレスを決定することができる。
好ましい例において、前記データ逆変換は、前記新データと更新前の前記ファームウェアの一部データとの排他的論理和演算含む。これにより、効率的かつ安全に新データを転送することができる。
本発明の他の態様は、データ記憶装置においてファームウェアを更新する方法である。この方法は、ファームウェアを更新するために、データ変換されている新データを受信する。前記受信した新データを更新前の前記ファームウェアのデータでデータ逆変換することで、前記新データを再生する。前記再生した新データを使用して前記ファームウェアを更新する。ファームウェア更新のためのデータを更新前のファームウェアのデータでデータ変換して転送することで、ファームウェアの更新を効率的かつ安全に行うことができる。
本発明によれは、データ記憶装置のファームウェアの更新を効率的かつ安全に行うことができる。
以下に、本発明を適用可能な実施の形態を説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略されている。以下においては、データ記憶装置の一例であるハードディスク・ドライブ(HDD)を例として、本発明の実施形態を説明する。
本形態は、HDDのファームウェアの更新にその特徴を有している。HDDは、ホスト・コンピュータから新たなファームウェアを受け取り、それによりファームウェアを更新する。新たなファームウェアは、HDD内の更新前のファームウェアによりデータ変換されて後、HDDに転送される。HDDは、自己のファームウェアを使用して、ホスト・コンピュータから受信したデータをデータ逆変換し、新たなファームウェアを再生する。HDD内の更新前のファームウェアを使用して転送データを変換することで、ファームウェア転送における安全性を高めると共に、処理を効率的なものとすることができる。
転送される新たなファームウェアは、好ましくは、更新されるプログラムを含むファームウェアの一部である。ファームウェア全体ではなく、更新される一部のみを転送することで、ファームウェアの転送における安全性をより高めることができる。また、ファームウェアの転送単位のサイズを小さくすることで、さらに安全性を高めることができる。HDDは、コンピュータからのコマンドに応じて、更新前のファームウェアに新たなファームウェアを組み込み、さらに、必要な部分についてアドレスの変更を行う。
図1は、本形態のファームウェア更新のためのシステムの例を模式的に示すブロック図である。図1(a)に示すように、新たなファームウェアは、メーカのサーバ52から、ネットワーク54を介して、HDD1が実装されているコンピュータ51に転送される。コンピュータ51は、HDD1にサーバ52から受信した新たなファームウェアを転送する。図1(b)のシーケンス図に示すように、サーバ52は、転送する新たなファームウェアをデータ変換して、コンピュータ51に送信する。コンピュータ51は、受信したデータをHDD1に転送する。HDD1は受信したデータをデータ逆変換し、新たなファームウェアを再生する。
コンピュータ51は受信したデータを、所定のプロトコルに従ってHDD1に転送する。このときコンピュータ51はデータ転送処理のみを行い、新たなファームウェアに対してデータ処理を行うことはない。このように、ファームウェア更新のためのデータ変換においてコンピュータ51の処理を不要とすることで、この手法の汎用性を高めると共に、安全性を高めることができる。
図2のフローチャートに示すように、サーバ52は、ファームウェアの変更部分をデータ変換し(S11)、ファームウェア更新のコマンドと上記データ変換したファームウェアの変更部分とを転送する(S12)。転送されるのはファームウェアの一部であり、また、ファームウェアの内容(アドレス順序ではなく)に変更が必要な部分のプログラムである。HDD1は、サーバ52から、ネットワーク53及びコンピュータ51を介して転送されたデータを受信する(S13)。HDD1は、データ変換されているファームウェアの一部である変更部分を、データ逆変換する。これにより、ファームウェアの変更部分が再生(復元)される(S14)。HDD1は、さらに、サーバ52から受信したファームウェア更新のコマンドに従い、再生した新たなファームウェアの一部を使用して、ファームウェアを更新する。
HDD1におけるファームウェアの更新について具体的に説明する前に、HDD1の全体構成を説明する。図3に示すように、HDD1は、エンクロージャ10の外側に固定された回路基板20を有している。回路基板20上に、リード・ライト・チャネル(RWチャネル)21、モータ・ドライバ・ユニット22、ロジック回路であるハードディスク・コントローラ(HDC)とMPUの集積回路(HDC/MPU)23及びRAM24などの各回路が実装されている。エンクロージャ10内において、スピンドル・モータ(SPM)14は所定の角速度で磁気ディスク11を回転する。磁気ディスク11は、データを記憶する不揮発性メモリである。
HDC/MPU23からの制御データに従って、モータ・ドライバ・ユニット22がSPM14を駆動する。各ヘッド・スライダ12は、磁気ディスク上を浮上するスライダと、スライダに固定され磁気信号と電気信号との間の変換(データの読み書き)を行うヘッド素子部とを備えている。各ヘッド・スライダ12はアクチュエータ16の先端部に固定されている。アクチュエータ16はボイス・コイル・モータ(VCM)15に連結され、回動軸を中心に回動することによって、ヘッド・スライダ12を回転する磁気ディスク11上においてその半径方向に移動する。
モータ・ドライバ・ユニット22は、HDC/MPU23からの制御データに従ってVCM15を駆動する。アーム電子回路(AE:Arm Electronics)13は、HDC/MPU23からの制御データに従って複数のヘッド素子部12の中から磁気ディスク11にアクセス(リードもしくはライト)するヘッド・スライダ12を選択し、リード/ライト信号の増幅を行う。RWチャネル21は、リード処理において、AE13から供給されたリード信号を一定の振幅となるように増幅し、その後、取得したリード信号からデータを抽出し、デコード処理を行う。デコード処理されたデータは、HDC/MPU23に供給される。また、RWチャネル21は、ライト処理において、HDC/MPU23から供給されたライト・データをコード変調し、さらに、コード変調されたデータをライト信号に変換してAE13に供給する。
HDC/MPU23において、プロセッサの一例であるMPUは、不揮発性メモリであるROM25あるいは磁気ディスク11からRAM24にロードされたファームウェアに従って動作する。HDC/MPU23は、リード/ライト処理制御、コマンド実行順序の管理、サーボ信号を使用したヘッド・ポジショニング制御(サーボ制御)、コンピュータ51との間のインターフェース制御、ディフェクト管理、エラー対応処理など、データ処理に関する必要な処理及びHDD1の全体制御を実行する。
本形態のHDC/MPU23は、ファームウェアの更新処理を行う。HDC/MPU23内のインターフェース回路がコンピュータ51からファームウェア更新のためのデータを受信する。MPUはファームウェア更新プログラムに従って動作し、データ記憶装置としてのHDD1の動作を制御するファームウェアの更新処理を行う。ファームウェア更新プログラムもファームウェアの一種と考えることができるが、本明細書において、ユーザ・データのリード/ライトのためにデータ記憶装置として機能する処理を行うためのプログラムをファームウェアと呼び、ファームウェア更新プログラムと上記ファームウェアとを区別する。
図4は、更新されるファームウェアとファームウェア更新プログラムとの関係を示している。更新前ファームウェア251とファームウェア更新プログラム252とは、ROM25に保存されている。これらは、磁気ディスク11に保存されていてもよい。通常動作において、RAM24上にファームウェアが展開されており、MPU23がそのファームウェアに従って動作する。
ファームウェアの更新処理においては、ファームウェア更新プログラム252がROM25からRAM24にロードされる。コンピュータ51からファームウェア更新のコマンドを受信すると、MPUは、ファームウェア更新プログラム252を起動する。その後、MPUは、ファームウェア更新プログラム252に従って動作する。RAM24には、ファームウェア更新プログラム252と、更新前ファームウェア251が格納されている。また、コンピュータ51から転送された新ファームウェア241(ファームウェアの変更部分)がRAM24に格納されている。
MPUは、ファームウェア更新プログラム252に従って新ファームウェア241のデータ逆変換を行う。この点については後に詳述する。MPU23は、再生した新ファームウェア241を更新前ファームウェア251に組み込み、ファームウェアを更新する。MPUは、新ファームウェア241の組み込みと、それに伴うコードのアドレス変更を行い、更新後ファームウェア253を生成する。その後、MPUは、更新後ファームウェア253をROM25に保存する。以上でファームウェア更新処理が終了する。
以下において、ファームウェアのデータ変換方法及びHDD1内におけるファームウェア更新処理について、より詳細に説明する。図5(a)は、ファームウェアの更新の一例を示している。更新前ファームウェア251は「ABCDE123」であり、更新後ファームウェア253は「ABDEFG12」である。データ「FG」が新たに追加されたデータである。矩形で示された各データは、ファームウェア更新におけるデータ処理単位であり、好ましい例において、1バイトのデータである。A〜G、1〜3はそれぞれデータ単位を指示するための符号であって、特別な意味を有してない。
図5(a)において、MPUは、最初に、更新前ファームウェア251から更新後ファームウェア253にデータA、Bをコピーしてする。次に、データD、Eを、更新前ファームウェア251から更新後ファームウェア253にコピーする。その後、MPUは、外部から転送されたデータF、Gを更新後ファームウェア253に追加する。MPUは、前もって、データF、Gをデータ逆変換により再生しておく。最後に、MPUは、データ1、2を、更新前ファームウェア251から更新後ファームウェア253にコピーする。
図5(a)において、COPY(x、y)は、更新前ファームウェア251のオフセットxから、y個のデータをコピーすることを指示する。また、APPEND(X、Y)は、データX、Yを更新後ファームウェア253に追加することを指示する。これらは、サーバ52からHDD1に送信される、ファームウェア更新のためのコマンドである。例えば、COPY(0、2)は、更新前ファームウェア251のオフセット0にあるデータAから2つのデータであるデータA、Bを更新後ファームウェア253にコピーすることを指示する。
あるいは、COPY(3、2)は、更新前ファームウェア251のオフセット3にあるデータDから2つのデータであるデータD、Eを更新後ファームウェア253にコピーすることを指示する。MPU23は、サーバ52から、COPY(0、2)、COPY(3、2)、APPEND(F、G)、COPY(5、2)の順序で各コマンドを受信する。そして、各コマンドの受信順序と実行順序は一致している。MPUは、更新後ファームウェア253のアドレス(0)から、順次データを格納していく。HDD1は、これらコマンドを一括して受信することもできる。この場合においても、各コマンドの実行順序は上記例と同様である。
図5(b)は、ファームウェア更新処理のコマンドのフォーマットを示している。ファームウェア更新コマンドは、コマンド・タイプ・フィールド、アドレス数フィールド、そしてオフセット/アペンド・データ・フィールドで構成されている。コマンド・タイプ・フィールドは、COPY、APPENDのコマンドの種類(タイプ)を示す。アドレス数は、COPYあるいはAPPENDするデータ単位(アドレス)の数である。例えば、COPY(0、2)であれば、2である。
オフセット/アペンド・データは、コマンド・タイプによって格納されるデータが異なる。COPYコマンドにおいてはオフセットがそこに格納され、APPENDコマンドにおいてはアペンド・データがそこに格納される。図5(b)に示すように、COPY(0、2)に相当するコマンドは、「COPY」「2」「0」である。APPEND(F、G)に相当するコマンドは、「APPEND」「2」「[F]、[G]」である。[F]、[G]は、それぞれ、データ変換されたデータF、Gを表している。
上述のように、サーバ52からHDD1へ転送されるファームウェアの新しい更新部分は、データ変換される。このデータ変換方法について説明する。サーバ52は、更新前のファームウェアを使用して、新たなファームウェアをデータ変換する。更新前のファームウェアは、第三者に知られていないため、高い安全性を確保することができる。好ましいデータ変換方法の一つは、排他的論理和演算を使用したスクランブル処理である。
データに、同一データを2回排他的論理和演算すると、元のデータが復元される。従って、HDD1は、サーバ52と同一のデータと、データ変換されたファームウェアとの排他的論理和演算を行うことで、容易に、新たなファームウェア(変更部分)を再生することができる。更新前のファームウェアのいずれの部分を使用するかを示す規則が、サーバ52とHDD1とに予め設定されており、これらはその規則に従って、新ファームウェアのデータ変換のためのデータを選択する。
例えば、サーバ52及びHDD1は、新たなデータが組み込まれるアドレスと同一アドレスのデータを使用して排他的論理和演算を行うことができる。つまり、図5(a)の例において、サーバ52は、データFとデータEとの排他的論理和を計算して、データ変換された[F]を生成する。また、データGとデータ1との排他的論理和を計算して、データ変換された[G]を生成する。
より好ましい方法は、排他的論理和演算の要素として、更新前ファームウェアにおいて、新たな更新部分のデータが組み込まれるアドレスと異なるアドレスのデータを選択する。同一アドレスのデータは類似するデータ列となっている可能性がある。また、新たなデータを更新前ファームウェアに追加する場合、更新前ファームウェアが、そのアドレスに対応するデータを有していないケースも考えられる。あるいは、ファームウェアは、不使用領域を有していることがある。不使用領域におけるデータ列は単純であることが一般的であり、そのようなデータ列をファームウェアのデータ変換に繰り返し用いることは好ましくはない。
ファームウェア変更部分のデータ変換のためのデータを適切に選択することによって、上記問題を解決することができる。スクランブルに使用するデータの好ましい決定方法について、図6を参照して説明する。上記例と同様に、データF、Gを、更新後ファームウェア253の、アドレス4、アドレス5に追加する例を説明する。図6に例示するように、ファームウェア更新のためにサーバ52からHDD1に転送されるスクランブルされたデータSCRAMBLED DATAは、新しいファームウェア(変更部分)NEW DATAと、更新前ファームウェアの所定アドレスのデータOLD DATAとの排他的論理和演算により与えられる。
更新前ファームウェアのデータOLD DATAのアドレスTRANSFORMED ADDRESSは、転送される新しいデータが組み込まれるアドレスADDRESSをビット反転した値を更新前ファームウェアのアドレス数FIRMWARE LENGTHで除した場合の剰余である。更新部分のアドレスをビット反転することで、更新部分とは異なるアドレスのデータを選択することができる。ビット反転は、アドレス順序を逆にすることを意味する。ビット反転は、効率的な処理によりスクランブルのために更新前ファームウェアから選択するデータのアドレスを分散することができる。新たな変更部分のアドレスと異なるアドレスのデータを更新前ファームウェアから選択する好ましい方法は他にもある。例えば、変更部分のアドレスに所定の数値を可算した値を使用して、スクランブルのためのデータを特定するアドレスを決定することができる。
ファームウェアの新たな変更部分は、更新前ファームウェアの最終アドレスよりも後ろのアドレスに追加されることもある。あるいは、新たな更新部分のアドレスに所定値を可算する場合には、その値が更新前ファームウェアの最終アドレスをこえる場合がある。更新前ファームウェアのアドレス長による剰余はそのアドレス長未満である。従って、この剰余演算により、更新前ファームウェアから、スクランブルのためのデータを必ず選択することができる。
図6を参照して、ビット反転と剰余演算によるアドレス変換によりスクランブルのデータのアドレスを決定する方法を使用して、データF及びGをデータ変換する例を説明する。データFが更新後ファームウェアに組み込まれるアドレスは、アドレス4である。このビット反転はアドレス3である。また、アドレス3を更新前ファームウェアのアドレス長8で除した剰余はアドレス3である。更新前ファームウェアのアドレス3におけるデータは、データDである。従って、データFとデータDの排他的論理和が、転送されるデータ[F]である。
データGが更新後ファームウェアに組み込まれるアドレスは、アドレス5である。このビット反転はアドレス2である。また、アドレス2を更新前ファームウェアのアドレス長8で除した剰余はアドレス2である。更新前ファームウェアのアドレス2におけるデータは、データCである。従って、データGとデータCの排他的論理和が、転送されるデータ[G]である。
上記好ましい方法は、更新前ファームウェアのアドレス長による剰余を計算する。他の好ましい方法は、更新前ファームウェアのアドレス長よりも小さい値による剰余を計算して、新ファームウェアのデータ変換に使用するデータのアドレスを決定する。ファームウェアは、その一部に不使用領域を有することがある。このような不使用領域は単純なデータ列で埋められていることが多く、データ変換に使用することは安全性の点から好ましくはない。
剰余を計算する値を更新前ファームウェアのアドレス長よりも小さくすることで、スクランブルの計算に使用されるデータのアドレス範囲を、更新前ファームウェアの一部の所定範囲内に限定することができる。上記一部のアドレス範囲は、先頭アドレス以下の連続アドレス領域に限定されない。剰余を計算した後に、予め設定されている所定数を加算することで、更新前ファームウェア内において上記所定アドレス範囲をシフトすることができる。このように、剰余を計算する値及びアドレス範囲のシフト量を選択することで、任意の所望領域のデータを、ファームウェアのデータ変換のために選択することができる。これら剰余を計算する値及びアドレス範囲のシフト量は可変数であってもよい。HDC/MPU23は、サーバ52からのコマンドに従ってこれらの値を決定する。
次に、図7のフローチャートを参照して、上記方法によるファームウェアの更新におけるサーバ52及びHDD1の処理の流れを説明する。サーバ52は、通常のパーソナルコンピュータ(PC)もしくはワークステーションなどを使用することができる。サーバ52内にはCPUが実装されており、オペレーティングシステム及びファームウェア更新ププログラムに従って動作することで、ファームウェア更新のための各処理を行う。サーバ52内のファームウェア更新プログラムは、HDD1のそれとは異なる。
プログラムはサーバ52のメインメモリにロードされ、CPUにより実行される。サーバ52には、CPUやメインメモリとバスを介して接続されたコントローラが実装され、これらにデータ入力をするためのマウスやキーボード、あるいは画像出力のためのディスプレイやプリンタを接続する。さらに他のコンピュータと通信を行うために、コンピュータ3を、通信アダプタを介してネットワークに接続する。
サーバ52はHDDなどの不揮発性メディアを有するデータ記憶装置を有しており、そこに必要なプログラムやデータが格納されている。HDD1のファームウェアも、この不揮発メディアに格納されている。外部もしくは上記不揮発性メディアから、HDD1のファームウェアの変更部分(新ファームウェア)がメインメモリにロードされる。さらに、更新前ファームウェアもメインメモリにロードされる。
CPUは、ファームウェア更新における変更部分のアドレスからスクランブルに使用する更新前ファームウェアにおけるデータのアドレスを決定する(S111)。上記例に従えば、サーバ52のCPUは、変更部分のアドレスのビット反転を行い、さらに、そのビット反転したアドレスを変更前ファームウェアのアドレス長で除した値(アドレス)をメインメモリに格納する。このアドレスのデータが、更新部分のデータ変換に使用されるデータである。
CPUは、さらに、上記決定したアドレスのデータとファームウェア変更部分をメインメモリから取得し、それらの排他的論理和演算を行い、その値をメインメモリに格納する(S112)。CPUは、変更部分のアドレス数とデータ変換した変更部分とを含むコマンドを生成、そのコマンドをメインメモリに格納する(S113)。CPUは、生成したコマンドを不揮発性メディアに保存し、さらに、そのコマンドをHDD1に向けて送信する(S114)。
サーバ52からコンピュータ51を介して上記ファームウェア更新コマンドを受信すると、HDC/MPU23はそれをRAM24に格納する。HDC/MPU23は、そのコマンドに含まれる変更部分のデータ逆変換を行うため、更新前ファームウェア内の対応アドレスを決定する(S141)。上記例に従えば、HDC/MPU23は、変更部分が組み込まれるアドレスをビット反転し、さらに、更新前ファームウェアのアドレス長でその値を除算する。除算の剰余がデータ逆変換のデータのアドレスであり、RAM24に格納される。
HDC/MPU23は、更新前ファームウェアにおける算出した上記アドレスのデータと、データ変換されている変更部分とをRAM24から取得し、それらの排他的論理和演算を行い、変更部分のデータ逆変換を行う(S142)。この排他的論理和演算の結果がファームウェアの新たな変更部分であり、RAM24に格納される。HDC/MPU23はその変更部分を、RAM24に格納されている更新後ファームウェア253に組み込む(S143)。HDC/MPU23は、サーバ52からの各コマンドに応じてコピー処理とアペンド処理を繰り返して、RAM24で更新後ファームウェア253を生成し、それをROM25に保存してファームウェアの更新を完了する。
以上、本発明を好ましい実施形態を例として説明したが、本発明が上記の実施形態に限定されるものではない。当業者であれば、上記の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。例えば、本発明を、磁気ディスクと異なるメディアを有するデータ記憶装置に適用することができる。あるいは、データを記録あるいは再生のみ行うデータ記憶装置に適用することができる。本発明のファームウェア更新方法は、暗号機能を有するデータ記憶装置に好適であるが、それを有していないデータ記憶装置にも適用することができる。
1 ハード・ディスク・ドライブ、10 エンクロージャ、11 磁気ディスク
12 ヘッド・スライダ、13 アーム・エレクトロニクス(AE)、
14 スピンドル・モータ、15 ボイス・コイル・モータ、16 アクチュエータ
20 回路基板、21 RWチャネル、22 モータ・ドライバ・ユニット
23 HDC/MPU、24 RAM、25 ROM、51 コンピュータ
52 サーバ、53 ネットワーク、241 新ファームウェア
251 更新前ファームウェア、252 ファームウェア更新プログラム
253 更新後ファームウェア
12 ヘッド・スライダ、13 アーム・エレクトロニクス(AE)、
14 スピンドル・モータ、15 ボイス・コイル・モータ、16 アクチュエータ
20 回路基板、21 RWチャネル、22 モータ・ドライバ・ユニット
23 HDC/MPU、24 RAM、25 ROM、51 コンピュータ
52 サーバ、53 ネットワーク、241 新ファームウェア
251 更新前ファームウェア、252 ファームウェア更新プログラム
253 更新後ファームウェア
Claims (14)
- ファームウェアを格納する不揮発性メモリと、
前記ファームウェアを更新するために、データ変換されている新データを受信するインターフェース回路と、
前記ファームウェアに従って動作し、メディアへのアクセスを制御するプロセッサと、を有し、
前記プロセッサは、
前記受信した新データを更新前の前記ファームウェアのデータでデータ逆変換することで、前記新データを再生し、
前記再生した新データを使用して前記ファームウェアを更新する、
データ記憶装置。 - 前記新データは、前記ファームウェアの一部のデータであって、前記ファームウェアの更新において変更される部分である、
請求項1に記載のデータ記憶装置。 - 前記コントローラは、前記新データが組み込まれるアドレスと異なるアドレスのデータで前記データ逆変換を行う、
請求項2に記載のデータ記憶装置。 - 前記データ逆変換に使用されるデータのアドレス範囲は、前記ファームウェアのアドレス範囲の一部に限定されている、
請求項2に記載のデータ記憶装置。 - 前記プロセッサは、更新前の前記ファームウェアのアドレス長以下の値による剰余演算を使用して、前記データ逆変換に使用するデータのアドレスを決定する、
請求項2に記載のデータ記憶装置。 - 前記プロセッサは、前記新データが組み込まれるアドレスを変換した値に対して、更新前の前記ファームウェアのアドレス長以下の値による剰余演算を行って、前記データ逆変換に使用するデータのアドレスを決定する、
請求項5に記載のデータ記憶装置。 - 前記データ逆変換は、前記新データと更新前の前記ファームウェアの一部データとの排他的論理和演算含む、
請求項2に記載のデータ記憶装置。 - データ記憶装置においてファームウェアを更新する方法であって、
ファームウェアを更新するために、データ変換されている新データを受信し、
前記受信した新データを更新前の前記ファームウェアのデータでデータ逆変換することで、前記新データを再生し、
前記再生した新データを使用して前記ファームウェアを更新する、
方法。 - 前記新データは、前記ファームウェアの一部のデータであって、前記ファームウェアの更新において変更される部分である、
請求項8に記載の方法。 - 前記新データが組み込まれるアドレスと異なるアドレスのデータで前記データ逆変換を行う、
請求項9に記載の方法。 - 前記データ逆変換に使用されるデータのアドレス範囲は、前記ファームウェアのアドレス範囲の一部に限定されている、
請求項9に記載の方法。 - 更新前の前記ファームウェアのアドレス長以下の値による剰余演算を使用して、前記データ逆変換に使用するデータのアドレスを決定する、
請求項9に記載の方法。 - 前記新データが組み込まれるアドレスを変換した値に対して、更新前の前記ファームウェアのアドレス長以下の値による剰余演算を行って、前記データ逆変換に使用するデータのアドレスを決定する、
請求項12に記載の方法。 - 前記データ逆変換は、前記新データと更新前の前記ファームウェアの一部データとの排他的論理和演算を含む、
請求項9に記載の方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007308070A JP2009134368A (ja) | 2007-11-28 | 2007-11-28 | データ記憶装置及びそのファームウェアの更新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007308070A JP2009134368A (ja) | 2007-11-28 | 2007-11-28 | データ記憶装置及びそのファームウェアの更新方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009134368A true JP2009134368A (ja) | 2009-06-18 |
Family
ID=40866213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007308070A Pending JP2009134368A (ja) | 2007-11-28 | 2007-11-28 | データ記憶装置及びそのファームウェアの更新方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009134368A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018136972A (ja) * | 2009-07-01 | 2018-08-30 | ハンド ヘルド プロダクツ インコーポレーティッド | 非汎用装置のための汎用連結性 |
WO2023162075A1 (ja) * | 2022-02-24 | 2023-08-31 | 三菱電機株式会社 | ソフトウェア更新システムおよびソフトウェア更新方法 |
-
2007
- 2007-11-28 JP JP2007308070A patent/JP2009134368A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018136972A (ja) * | 2009-07-01 | 2018-08-30 | ハンド ヘルド プロダクツ インコーポレーティッド | 非汎用装置のための汎用連結性 |
WO2023162075A1 (ja) * | 2022-02-24 | 2023-08-31 | 三菱電機株式会社 | ソフトウェア更新システムおよびソフトウェア更新方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008085986A (ja) | データ変換装置と電子装置とデータ変換方法 | |
JP2008245112A (ja) | データ記憶装置及びその暗号鍵の管理方法 | |
JP2005237000A (ja) | 記録媒体のデータ消去方法,ディスクドライブ,コンピュータプログラム,ホスト機器,記録媒体のデータ消去命令生成方法 | |
JP2010028485A (ja) | 情報処理装置、認証方法及び記憶媒体 | |
JP2006277411A (ja) | プロセッサ、メモリ、コンピュータシステムおよびデータ転送方法 | |
JP2005140823A (ja) | 情報処理装置、制御方法、プログラム、並びに記録媒体 | |
JP2010020753A (ja) | 初期ブート画像のインストール方法、初期ブート画像の更新方法、及び記憶装置 | |
JP5192479B2 (ja) | ディスク・ドライブ及びディスク・ドライブにおけるデータ変換処理方法 | |
JP2007195190A (ja) | 記憶システムにおける暗号化キー | |
JP2006039206A (ja) | 暗号化装置および復号化装置 | |
JP4596538B2 (ja) | 情報処理装置、記録媒体、およびプログラム | |
JP3978200B2 (ja) | データ保存/検索システムでのデータ保護方法およびデータ保護装置 | |
JP4619361B2 (ja) | 暗号化指示情報を有する記録媒体 | |
JP2008299448A (ja) | データ記憶装置及び暗号鍵に関する情報の更新方法 | |
JP2004341768A (ja) | 磁気ディスク装置、暗号処理方法及びプログラム | |
JP2009111687A (ja) | 記憶装置、暗号化データ処理方法 | |
KR20010043582A (ko) | 기록 액세스시에 위치와 키를 무작위화하여 저장매체 상에복제 방지를 하는 방법 및 장치 | |
JP2010146127A (ja) | データ記憶装置及びデータ記憶装置の解析方法 | |
JP5005477B2 (ja) | 不揮発性記憶装置 | |
JP2010224644A (ja) | 制御装置、記憶装置、データ漏洩防止方法 | |
JP5017136B2 (ja) | ハードディスクドライブ用の暗号化復号化装置、及びハードディスクドライブ装置 | |
JP2009134368A (ja) | データ記憶装置及びそのファームウェアの更新方法 | |
JP2003044361A (ja) | データ保存再生システム、データ保存装置、データ再生装置、データ保存再生方法、プログラム、および媒体 | |
JP2007282064A (ja) | データ処理装置、データ処理方法、記憶媒体、プログラム | |
JP2001209584A (ja) | 情報暗号化装置及びその方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20100510 |