CPUが周辺機器だったとしたら…

 CPU(中央演算処理装置)は文字通り計算機の中心部でありすべてをコントロールしていると思われているが、実は演算を行うだけの周辺機器だとしたらどうするかね?

 オフコンの開発に関わっていたのだが、I/O周りはI/Oプロセッサという専用のCPUが制御していた。しかしよく調べてみると、昔はこのI/Oプロセッサが全てを仕切っていたらしい。いま設計しているプロセッサは何なのか。確かにOSはこのプロセッサの命令セットで動作するが、これができる以前はI/Oプロセッサ上でOSが動いていたのだ。処理能力を強化するために新規のプロセッサを付けることにし、以前のプロセッサはI/Oを引き継いだままI/O専用の処理をするようになったのだ。その傍証として、メインのプロセッサはI/Oプロセッサの指示がないと起動しない。つまり、I/Oプロセッサにとっては演算に特化した周辺機器扱いなのだ。
 オフコンの例だったが、おそらく汎用機も同じ進化をしただろうと推測できる。I/Oチャネルプロセッサは後から付けられたものではなく、最初に存在したものだろう。そしてI/Oプロセッサ+メインのプロセッサという構成となった。
 これは何かによく似ている。と思って調べたらプレイステーション2がそうだった。プレイステーションの機能を持つプロセッサは下位互換性のために存在し、ゲームコントローラを扱う。しかしユーザに見えるのはプレイステーション2の機能だ。
http://ja.wikipedia.org/wiki/プレイステーション2

 元々のプロセッサに付け足す形ではなく、プロセッサ自体が拡張するスタイルはMIPS,SPARCなどの32bitRISCが64bit対応に、またはx86が16bit→32bit→64bitと拡張されたものがある。これらはメインフレームが持っていたような専用の周辺機器ではなく、SCSI接続など汎用性のある規格を使っていたことも関係がある。また、周辺機器メーカーが複数存在し、新しい規格にいち早く対応してくれることも有効に働く。一方、周辺機器を含めた過去の互換性を引きずるとオフコンや汎用機やゲーム機の様になってしまう。ただし利点もあり、I/Oに関しては負荷を分散することができる。オフコン、汎用機が大規模なスケールを実現できるのはこのためだ。一方、UNIXサーバやIAサーバではプロセッサ自体の数を増やして対処しなければならない。このあたりはメーカーサイトで汎用機とUNIXサーバ機のプロセッサ数を確認してみるといい。汎用機は1~4CPU程度である。

 PS3の初代はPS2の機能もハードで持っていた。三世代のプロセッサが同居していたことになる。現在のPS3はコストダウンのためPS2部分を省いているが、互換性のためにはそこまでしないといけないのだ。

追記:PS3について調べたらPS部分はエミュレーションらしい。そういやコントローラはUSB/無線経由だし。失礼しました。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック