ハードのソフト化・ソフトのハード化の繰り返し。

未分類

ハード・ソフトという単語はITの世界で主に使われますが、昨今では二項対立の比喩表現にもよく使われますね。タイトルはそのどちらも指しているのですが、まずはITの世界でのお話から。

 

ITといってもかなりハードウェアよりな話になりますが、筆者がこれまで勉強・経験してきた限りにおいてこの分野は「ハードウェアのソフトウェア化」と「ソフトウェアのハードウェア化」を繰り返しています。最初期の計算機というのは自在に回路を組み替えて別な計算をするというような作りにはなっていない「機械」でした。現在ではノイマン型と呼ばれるコンピュータ(計算機)がほぼすべてでソフトウェアによってハードウェアの動きを必要に応じて変えるというのは非常に当たり前になりました。まぁこの辺は何をもってコンピュータと定義するかという話もあるので、そもそも「機械」だったものに「ソフトウェア」という概念が生まれたところで「ハード」と「ソフト」という区別が生じたというふうにしておきます。それ以来、ソフトウェアの処理が遅くなるとそれを専用ハードにして速度を速める、そのハードの上で動くソフトを新たに書いてそのソフトが主になるというような繰り返しをしてきました。

より具体的に言えば、「仮想化」というキーワードが出てきたら「ハードのソフト化」です。仮想化という概念自体は数十年も前からあるので、計算機科学を学んだ人にとっては新しい概念ではないのですが、近年ホットな話題でもあります。最近の仮想化技術はコンピュータそのものを仮想化することを可能にしています。筆者は日々、仮想化されたサーバを相手にしているので仮想サーバ(仮想マシン)というのは非常に身近な存在なのですが、PC上でも仮想マシンを使っているユーザもちらほらいるようです。仮想マシンというのは、コンピュータ上でソフトウェアを使ってあたかもそこにコンピュータがもう一台(あるいは複数台)あるかのように仮想的にコンピュータを作り出します。仮想マシンだけを使っているとそれは今までと同じコンピュータですが、実際にはその動きはソフトウェアによって作り出されています。

初期の仮想マシンは純粋にソフトウェアによってその動きを作り出していましたが、そうするとどうしても処理に無駄(オーバーヘッド)が生じて仮想マシンの動作は遅くなります。そうすると、この業界では「ソフトのハード化」が起こります。事実、最近のCPUには仮想化処理に特化した機能が備わるようになりました。ほかにも、これまでソフトウェアで作り出していた動きを専用のハードに肩代わり(オフロード)させるという仕組みが生まれつつあります。

この10年ぐらいをみてもハードのソフト化・ソフトのハード化が起きていますが、実際はそれ以前にもハード→ソフト・ソフト→ハードという流れはコンピュータの内部では起きているので、案外これは繰り返されるのではないか、と筆者は考えています。

タイトルとURLをコピーしました