現代PCの基礎知識(4):プログラムやデータの保存に欠かせないストレージ
はじめに
ソフトウェア開発環境では、開発に用いる各種ツールや開発対象となるソースコード、設定ファイル、開発対象によっては画像データなど、多種多様なファイルを取り扱うことになる。これらファイルの保存場所となるのがHDDやSSDを代表とする、いわゆるストレージだ。
今回は、主にストレージの種類及びPCとの接続インタフェースについて紹介する。
USBメモリとSDカード
2016年現在、PCに限らずコンピュータ製品は電源を切るとそれまで動作していた状態をそのまま保つことができない。CPUやRAMなどは電源供給なしに状態を保つよう作られていないからだ。
これに対してUSBメモリやHDD、SSDといったストレージ(日本語では「二次記憶装置」)は電源供給がなくても記録された内容を記憶し保持できる。そのため、WindowsやLinuxなどのOSのインストール先として使用されるほか、ユーザが取り扱う各種データやアプリケーションの保存場所にもなる。
おそらく、皆さんがふだん一番よく目にするストレージはUSBメモリ(「USB Flash」と呼ばれることもある)だろう(図1)。SDカードと共にデータを持ち運び任意の機器で読み書きするのに便利なデバイスだ。
USBメモリの中身はFlashROMと呼ばれるチップとUSBの読み書きをする制御チップで構成されたシンプルなものである。SDカードも同様にFlashROMを用いてデータやプログラムを記憶する。
SD(Secure Digital)カードはPCだけでなくスマートフォンやデジタルカメラの記録媒体としても使われる、薄くて長方形の、端子がむき出しになった小さな記録媒体だ。標準サイズのほかminiSD、microSDといった小型化された規格がある(図2)。
アクセス速度はClassで区分けされ、後ろに付く数字が大きいほど速い。例えば「Class 2よりClass 5のほうが速い」といった具合である。多少なりとも速度が気になる場合は、容量と価格だけでなくClassも比較するといいだろう。
これらのストレージからOSを起動できるPC(マザーボード)もあるが、USBメモリやSDカードは常時アクセスされ続けることを想定していないため故障のリスクが比較的高いだけでなく、アクセス速度もSSDやHDDよりも遅く、またメディアの容量も数GB~64GB程度が一般的であることから、開発環境の常用ストレージに使用するには無理がある。正直に言ってお勧めしない。
重くてうるさいが大容量のHDD
HDDはHard Disk Driveの略で、日本語ではハードディスク、海外ではHard Driveと呼ばれることもある。近年では徐々にSSDに主役の座を奪われつつあるが、大容量かつコストパフォーマンス(記憶容量あたりの単価)がよいことから、大量データを扱う場合のリーズナブルな選択肢となっている(図3)。
HDDの中身は金属製の密閉された筐体の中に何枚かのプラッタと呼ばれる円盤が入っており、円盤の表面上にデータが記録され、ヘッドでデータを読み書きする記憶装置である(もともと円盤の素材がガラスなど「硬い」ことからHard Diskと呼ばれる)。データは円周に沿って記録され、年輪のように幾重にも刻まれることで大容量の記録を実現している(容量はプラッタの枚数や記録方式による面積当たりの記録密度とも関係する)。
ヘッドは回転する円盤の円周の内側と外側を直線的に移動する。ヘッドの移動をシークと呼び、シーク速度がデータの読み書き開始までの時間に関係する。HDDを搭載するPCからカリカリと不規則に音が聞こえることがあると思うが、これはHDDのシーク音だろう。
また、プラッタの回転速度にもいくつかのグレードがある。現在では安価なもので5,400rpm(1秒あたり5,400回転)、少しグレードの高いもので7,200rpm、高価なもので10,000rpm以上となっている。これらによっても読み書きの速度は左右される。
しかしHDD上にもストレージの読み書き用キャッシュメモリが搭載されているため、キャッシュサイズを大きく上回る連続アクセスでなければキャッシュメモリによって実効的な速度が決まってくる。Windowsの起動時などにしばらくHDDのシーク音が断続的に聞こえてくるのは、HDDのキャッシュメモリに収まりきらないデータやプログラムを読み書きしているからである。
HDDのサイズは3.5インチと2.5インチが主で他のサイズはほとんど見かけないと言っていい。一般的に2.5インチのほうが高価で容量も小さい。コストパフォーマンスを考えるとNUCなど小さく納めたい場合を除くと3.5インチが好まれる傾向にあると思うが、近年の出荷数は同じくらいのようだ。
HDDを搭載するノートPCの場合、中には1.8インチサイズのHDDが採用されていることもあるため、容量不足から交換を考えるような場合はサイズについてもあらかじめ確認しておこう。
インストールに欠かせない光学ドライブ
ソフトウェアのパッケージ製品を購入すると、たいていはCD-ROMあるいはDVD-ROMメディアが付属している(最近ではライセンスコードやUSBメモリのみという例外もある)が、これらの読み込みに使われるのがCD-ROMおよびDVD-ROMドライブだ。これらは総称として光学ドライブ(Optical Drive)と呼ばれている(図4)。
かつてPCに搭載される光学ドライブはCD-ROMドライブが標準だったが、供給されるソフトウェアの大容量化や映像メディアとしてのDVDの普及に伴い、2016年現在では安価なDVD-ROMドライブからDVD-Rをはじめとするリライタブルメディア対応のDVDマルチドライブ、ブルーレイ対応のBDドライブまでバリエーションに富んでいる。どのドライブでもDVD-ROMの読み込みが可能だ。
なお、DVD-Rのような書き込み可能なドライブでも、基本的にHDDやSSDのようにランダムアクセスによる自由な書き込みが可能な構造にはなっていないことから、通常は専用のライティングソフトウェアを用いて書き込みを行う。中にはオンザフライと呼ばれるユーザがアクセスする限りにおいてSSDなどと同じ感覚で読み書きできるソフトウェアも存在するが、実際にメディアへ書き込む速度が向上するわけではないこと、データを追記していく構造であることから、SSDの代わりとは考えない方がいいだろう。
また、PCパーツショップで売られている書き込み可能ドライブの中には、ライティングソフトウェアが付属しているものとドライブのみの販売となるものがある。すでにライティングソフトウェアを持っている、あるいはフリーソフトウェアなどを探して自分で環境を整えることができれば別だが、ライティングソフトウェアが付属している製品を選ぶのが無難だ。
ホビー用のPCであれば読み込み専用ドライブで十分だと思うが、開発環境ではデータの受け渡しや納品などでDVDメディアにデータやプログラムなどを書き込むケースが十分に考えられる。パーツを購入する場合に限らず、完成品PCを購入する場合も書き込み可能ドライブを選んでおいたほうが後々役に立ってくれるだろう。
軽量で静かで速いが壊れやすい? SSD
SSDはSolid State Driveの略で半導体(FlashROM)を用いたストレージ製品だ(図5)。日本国内でSSDが「交換可能なパーツ」として広く知れ渡ったのは、2008年発売のASUS EeePCというネットブック製品(EeePC 901-X)が最初だったように思う。EeePCの交換可能SSDの容量は4GB、8GBだった。現在販売されているSSDは64GB~数TBとバリエーションも多いが、当然大容量のものは高価である(容量だけでなく高速性も追求する製品だと1.6TBで50万円といった具合)。
HDDと異なり物理的に回転する部分がないことから動作音はしない。昔はHDDを使いつつ防音や振動対策などを施した静音PCというジャンルがブームになったりもしたが、SSDを使えば苦労は半減すると言っていい。
SSDの大きな特徴は速度だ。HDDもSSDも多種多様な製品があり計測する際のアクセス方法(シーケンシャルかランダムか、アクセスサイズ、読み書き等)によっても違いが出てくるが、スケール感が伝わる例で言えばHDDと比較して概ね2~3倍の速度が出るようだ。体感できる例ではWindowsの起動時間ではっきり分かる。速度を重視するのであれば、迷わずSSDを選択すべきだろう。
そんなSSDだが欠点もある。1つは価格だ。HDDと比較すると容量あたりでざっくり言って10倍高価である(2016年現在)。HDDの場合TBクラスの製品でも数千円で売られているが、同価格帯のSSDでは120GBや240GBだ。しかし、この価格差は徐々に縮まっており(SSDの大容量化が進んでいる)将来は解消されるかもしれないが、現時点で開発対象や開発規模によっては大枚をはたいて大容量のSSDを導入するか、速度や騒音を妥協してHDDを選ぶか、悩みどころである。
参考になるか分からないが、ここで1つの例を紹介しよう。筆者はメイン開発マシンに120GB SSDを使っていた。記憶容量を妥協して速度と価格でバランスをとった結果だったが、ある日開発物をビルドしていたところ、コンソールに"No space left on device"、つまり「残り容量がありません」というエラーが出てしまった。しばらくは使わないファイルを消すなどだましだまし使っていたがすぐに限界と悟り、後日やむなく240GB SSDに入れ替えたことがある。
120GBは繋いだままにして増設という手もあったが、家の引っ越しのようにSSDの中身の整理がきっかけだったため、取り外した120GB SSDはところてん方式で別途組み立てたマシンに接続することになった。このときはOSがLinuxで交換時にハマるところはなかったが、Windowsではパーツ構成が異なると再アクティベーションが必要になったりすることもあるため、移設の際は気をつけておきたい。
SSDのもう1つの欠点は耐久性だ。HDDは物理的にディスクを回転させるためモーターやベルトなど物理的に劣化する部分があるが、SSDの耐久性とはFlashROMの書き換え回数の上限と言っていいだろう。FlashROMの構成要素であるメモリセルの書き換え回数の上限は1万~10万回程度らしい。SSDでは同一のメモリセルへ頻繁にアクセスしない、上限に達するなどして正しく読み書きできなくなったメモリをブロック単位で不良扱いにして内部的に切り離すなど耐久性を向上する工夫がなされている。
耐久性は、おそらく仕様に記載されているMTBF(Mean Time Between Failure(s):平均故障間隔)がおおよその指標となる。もっとも、どの程度あてになるかというとふだん個人で数台のSSDを運用する筆者程度ではまったくわからず、SSDでもHDDでも壊れるときはあっさり壊れるので、あまり神経質になっても仕方がないと思う。ただ、ノーブランドの激安SSDを使っていたところ、ある日突然死したことがあった。経験的に安物はそれなりの可能性がありそうだということだけお伝えしておきたい。
さて、SSDに使われているFlashROMにはいくつかの種類がある。
- SLC(Single Level Cell)
- MLC(Multi Level Cell)
- TLC(Three Level Cell)
SSDが登場して間もない頃はSLCとMLCの2種類が流通しており、SLCは高速・高信頼性・高価格なもの、MLCはそうでない安価なものだった。TLCはMLCよりもさらに安価だが、筆者の個人的感覚では、信頼性に関してはMLCと大きく違わないように感じている。どのタイプを選ぶかは予算などにもよるかもしれないが、FlashROMのタイプよりはむしろメーカーなどを見て決めている人が多いように思う。あなたはどうだろうか。
古いPCで使われた記憶媒体いろいろ
皆さんの中でFDD(Floppy Disk Drive)をご存じない方はどのくらいいるだろうか(図6)。Microsoft WordやExcelの「保存」アイコンはFDDに挿入する3.5インチFDメディアを模したものだ。
3.5インチFDメディアは、正方形に近い平べったいプラスチックパッケージの中に、磁性体を塗布したぺらぺらの円盤状のシートが入っている(この「ぺらぺら」がFloppyの由来)。規格によって差異はあるが、2HD FDメディア1枚あたりの容量は約1.4MB。16bitマシン上でMS-DOSを動作させている時代には、FDDからOSを起動させることも珍しくなかった。
Windows普及の起爆剤となったWindows 95(日本では1995年11月に発売)ではCD-ROM版とFD版があり、FD版ではHDDへインストールする際に何枚ものディスクを入れ替えながら数時間かかるものだった。FDメディアのサイズは8インチから始まり5インチ(5.25インチ)、3.5インチが大きく普及した。
MO(Magneto-Optical disk)というメディアも存在した。光磁気ディスクと呼ばれるもので、容量は128MB~1GBとFDよりも圧倒的な大容量を持ち運びできるためか、1990年代に一部ユーザでよく使われていた。サイズは5インチと3.5インチが主流であった。
3.5インチMOの発売当初、同容量のHDDが数万円するのに対しMOメディアは数千円で買えたことから、筆者は何枚も買って利用していた。HDDと比べるとアクセス速度は遅かったが、それでもFDよりは格段に便利だった。NeXT社PCのブートドライブとして5インチMOが使われていたというエピソードが比較的有名である。
CF(Compact Flash)は小型のカード型フラッシュメモリだ。かつてはコンパクトな記録媒体としてPCでもよく使われていたが、現在は主に一部のデジタルカメラ用として使われている。容量は発売当初の1995年時点では1GBに満たなかったが、現在は16GBのものがある。一時期、CFと同一サイズ(当時のCFと比較して大容量)のHDDとしてmicrodriveという製品が流通していたが、CFと比較して消費電力が大きく、また故障することも多く、やがてフラッシュメモリの大容量化などに押されて消えていった(図7)。
CFでないPCMCIAサイズのフラッシュメモリやその他Syquestやiomega Zipなど、一世を風靡して(あるいは風靡することもなく)消えていったメディアは数多いが、既存の環境で使われている以外で新規に開発環境に導入することはないと思うので、昔話はこのくらいにとどめておく。
まとめ
今回はデータの記録を支える各種ストレージをざっと紹介した。安価で大容量のストレージを求めるならHDD、容量は控えめでも高速にアクセスしたければSSDを選択すればよいだろう。デスクトップ機などで搭載スペース等に余裕があればOSはSSDにインストールし、データはHDDに保存するといった技も可能だ。
本稿が、開発対象や扱うデータに応じて柔軟に構成を考えるための一助となれば幸いである。