2022年10月18日

【技術顧問の小話 #004】HDDのファームウェアとは?

【技術顧問の小話 #004】HDDHDDのファームウェアとは?

 

 

HDDのファームウェアについては、インターネット上でも説明しているサイトはほとんど存在しないと思います。HDDのファームウェアは、実際にどの様な情報を持ち、何をしているのかについて再確認してみましょう。

 

 

1.ファームウェアとは?

ウィキペディアによると、ファームウェアとは、

家電製品や、パソコン、周辺機器、携帯電話などのように、コンピュータシステムを組み込んだ電子機器本体(組み込みシステム)に所望の動作をさせるためのソフトウェアであり、ハードウェアに密接に結びついていて、むやみに書き換えることのない媒体に書き込まれた物を言う。一般的なソフトウェアよりハードウェア寄りのソフトウェアということで、ファーム(firm:堅い、固定した)という呼び方をしている。
(フリー百科事典『ウィキペディア(Wikipedia)』 ファームウェア(https://ja.wikipedia.org/wiki/ファームウェア)より引用)

と書かれています。まさにその通りで、HDDのファームウェアは本来、HDDの基本的な動作ロジックを構成し、正常に動作させることを目的として作られた一種のソフトウェアです。かつては、その機種に対して1種類しか存在しないのが当たり前で、容量が違っていても機種さえ同じならば、基板を交換しても問題無く動作する状態だったのです。このために、その時代を知っている人は未だに「HDDが故障したら、基板交換してみれば?」と考えてしまうかもしれません。

 

 

2.コストダウンとファームウェア

HDDのコストダウンのために、ファームウェアが果たした役割は小さくありません。これには、半導体製造技術の進歩が密接に関係しています。2000年頃のHDDは年率で約2倍のスピードで大容量化が進んでいました。HDDの製造を手がけている企業の数も現在の2倍はあり、激しい価格競争を繰り広げていました。ちょうどその頃、電子機器のメカニカルコントロール用に使われるシステムLSI※の一つのICチップ上に、メモリーICも同時に搭載する技術が開発されました。これにより、ファームウェアが異なる場合でも、別のLSIを前もって準備する代わりに、後からファームウェアを書き込むことが可能になり、部品をランク分けして組み合わせ、最適化した条件で動作させるようなコストダウン手法を用いる事が容易になったのです。それと同時に、同一メーカの同一型番であっても、ファームウェアが違うと基板やヘッドなどの部品に互換性が無い、ということも起きるようになりました。

この時点で、HDDのファームウェアは、本来のファームウェアとしての役割だけではなく、実際に製造されるロットの各部品の組み合わせに対応して最適化された条件を管理するものとして認識されるようになりました。ですからこのコラムにおいても、2000年以前から存在する機種固有の部分を管理するファームウェアを第一世代とするのであれば、2000年代以降のコストダウンを達成するために追加された部分を第二世代と呼ぶことにします。

 

HDDファームウェアの便宜的な呼び分け 主な目的
第一世代ファームウェア 機種固有の基本的な動作ロジックを構成し、正常に動作させる
第二世代ファームウェア 製造されるロットの各部品の組み合わせに対応して最適化された条件を管理する。2000年代初期以降に追加された。

 

HDDのファームウェアの存在を有名にしたのは、Seagateのファームウェアトラブルで、HDDが正常動作しなくなる「ファームウェアロック」ではないでしょうか。この件の解決策として2009年にSeagateが明らかにしたのが、ファームウェア・アップデートでした。つまり、HDDのファームウェアは、HDDが製品として完成した後でも外部から書き換えが出来ること、HDDの基板上のICにはメモリーが存在し重要な役割を果たしている事実が明らかになったのです。

 

 

3.第二世代ファームウェアが格納する情報とは?

ファームウェアには定められた規格も規則もありません。メーカが都合によって内容を決める事が出来ますので、詳細については勝手に想像する事しか出来ません。しかし、HDDの製造工程を考えると、ファームウェアで管理する必要のある項目と、システムエリア(SA)に記録すべき項目とを分離する事もある程度は可能です。下記は、HDDに電源が投入されたときに真っ先に読み込まなければ、それ以後の動作に問題が発生し動作不能に陥るため、基板上のメモリーに記録しておくことが絶対的に必要となる項目です。

[必須項目]
ヘッドの読み出し、書き込み機能に直結する情報

  • データ書き込み時にヘッドに流す、書き込み電流値に関する情報
  • ヘッド上の読み出しギャップと書き込みギャップの位置の誤差に関する情報
  • トラック0(SA)の位置に関する情報
  • ヘッドの読み出し信号波形(アナログ)をデジタル信号に変換するためのA-D変換に関する情報

 

 

現在のファームウェアには、SAとの情報配分をどうするか、どう使うことが効率的であるか、プラッタの使い方に関する情報なども含め、各製造メーカの設計に従い多くの情報が格納されているのが実態となっています。

HDDの部品の交換を行う場合に、なぜファームウェアが同一のものを入手する必要があるのか、互換性の確保のためには何に気を使う必要があるのか、お分かりいただけたでしょうか。

 

 

【著作権は、沼田理氏に帰属します】

 

 

※システムLSI
機能や種類の異なる複数の集積回路を一つのLSI(大規模集積回路)に実装し、全体として一つのシステムとして機能するようにしたもの。

 

 


 

沼田理氏
沼田 理(ぬまた まこと)
データ復旧・データ消去のスペシャリスト。データ適正消去実行証明協議会(ADEC)技術顧問。技術情報、web原稿の提供、IDF(デジタル・フォレンジック研究会)講師などを務める。神奈川県情報流出事件以降は、新ガイドライン作成へ向けた行政からの技術諮問に応じるなど活動中。2020年2月より、株式会社ゲットイットの技術顧問に就任。

執筆文献:「データ抹消に関する米国文書(規格)及びHDD、SSD の技術解説」「ADEC データ消去技術ガイドブック 第2版」他。