Tales of Mados & Ringos / 真・窓と林檎の物語
トップ窓と林檎 → 動きの速い…1 1997.09.01

--------------------------
真・窓と林檎の物語
--------------------------

動きの速い幼稚園児・完全版
The Director's Cut

〜前編〜

  さてさて、待ちに待った今宵の話題は、 世の中に星の数ほどあるコンピュータの中心に存在する、 中央演算装置(あるいは、微小処理装置)のお話である。 イマドキはちょうど多くの話題があって選ぶのに困るほどであるが、 不確実な情報をもとに考えをめぐらせても無駄であるので、 先週の予告通り、旧版で最高の人気を誇った「動きの速い幼稚園児」のリライトで攻めることにする。 で、肝心の内容としては、縮小命令集合計算機(RISC)と複雑命令集合計算機(CISC)の二つのパラダイムに関する話題が主である。 が、旧版で触れられることのなかった互換チップのお話や、 これら二つのパラダイムの先に見え隠れする未来についても書いていくことにする。 前作では限られた分量のために削った話題が多く、 この話題を扱ったコラムには質問や指摘が集中したが、 今回は書きたいことを好きなだけたっぷり書かせて頂いたので、 前編と後編にわかれてしまった。 従って、旧版と比べてより難しい「硬い」話も増えているが、 よい機会だと思って心して読んで頂きたい。

  まず、時代の覇権を争っている(というより、 「争っていた」という方が現在では正しいかも知れん)、二つの計算機パラダイム、 縮小命令集合計算機と複雑命令集合計算機について説明しよう。 命令集合が「縮小」だの「複雑」だの言っても、 わからん人にはさっぱりわからんだろうから、 いつも通りてきとーな例えを考えたんであるが、今一ついいのが見つからないので、 最初に思いついた奴でごまかすことにする。ずばり言って

  • RISC=動きの速い幼稚園児
  • CISC=動きの遅い大学生

である。結論から言って、これだけで全てを語っているので、 もはやこれ以上何も書かなくていい気もするが、 それでは愛する読者の方々の血圧が急上昇するであろうから、 もう少し書いておくんである。

  そもそも、このけったいな「命令集合」とはなんぞや? 簡単に言えば、 そのコンピュータが解釈して実行できる命令の一覧表のようなもんである。 もっとすごくいい加減に言えば、「語彙の多さ」みたいなもんであると言えないこともないような気がする思いのよぎる今日この頃ではあるが、ちっと違うような気もする。 つまり、例をあげて言えば、こういう感じである。 例えば近くの大学生に買い物の用事を頼むときは、

「ちょっと角の本屋行って来てさー、『なんとか』っていう本買って来てよ。 たぶん、哲学の新刊書のところにあると思うんだ。 なかったら、注文してきてよ。でも2週間以上かかるんだったらいらない。」
とかいう言い方で通じる(はずだ、そうでなければモグリの大学生に違いない)。 つまり、普通に理解しやすい文章なのだ。 いろんな条件を付け加えてたり、 暗黙の仮定をしてたり、主語やらなにやらがいろいろ省略されてたりする。 大学生ならこういう言い方で十分仕事をしてくれることになっている。 で、次にこれを幼稚園児にやらせることを考える。 ま、幼稚園児とは言ってもあくまで例えで、実際にはコンピュータであるからして、 言われたことは間違いなく確実に最後までやり遂げるんであるが、 いちいち細かくちょー具体的に指示してやらないといけないのだ。 うかつに主語を省略したり、条件を省いたりしてはいかん。 だから、こんな感じであろうか?
「〜丁目の交差点の東南の角にある3階建の書店の2階に行って、 哲学書のコーナーで新刊書のところにおいてあると予想される、 『なんとか』という本を購入してきてよ。 買ったらちゃんとここに戻ってくるんだよ。 で、もしその書店で目的の本が売ってなかったら、 同じ名前の本を書店の店員に注文して来て。 だけど、注文する前にどの程度の日数で入荷するか尋ねてくれたまえ。 14日以上かかるのだったら注文は中止してここに帰って来ること。」
ってな具合であろう。う〜む、なかなかに長ったらしくて面倒くさいんである。 もちろん、指示を出す側からすれば、 大学生にするような感じで短くて楽な方がいいのは言うまでもない。 だから、一昔前までのコンピュータは全てそういう方向を目指して作られていたのであった。

  素人考えでは、なんとなく、使える命令の種類が豊富な大学生をこき使った方が、 いろいろな面で有利でウハウハな気がするかも知れん。 が、しかし、but、however、そう単純にホイホイと卸さないのは、 さすがは世にも摩訶不思議なコンピュータ業界の問屋である。

  両者の根本的な違いは以下にあげるものである。

  幼稚園児は覚えている語彙は少ない(=命令の種類が少ない)が、 身は軽い(=命令当たりの処理時間が短い)。 また、体は小さく(=チップサイズが小さい)、 食事の量も少ない(=消費電力が小さい)。 さらに幼稚園に入園するまで育てるだけ(=設計期間が短い)だから、 たいして金がかからない(=設計・製造コストが安い)。

  基本的に大学生は全てこの逆をいっている。 大学生たちは難しい言葉や知識もたくさん知っていてとても語彙が多い(=命令数が多い)が、 それに比例して頭でっかちになって動作は軽快とは言い難い(=命令当たりの処理時間が長い)。 さらには体まででっかくなりすぎて(=チップサイズが大きい)、 食事も「これでもか!」とやたら食いまくる(=消費電力が大きい)。 さらに小さいころから手間暇かけてせっせと大学生になるまで面倒を見続けなければいけないので、養育・教育費がものすごくかかる(=製造コストが大)。 そもそも、大学生になるまでにとっても時間がかかる(=設計期間が長い)。 さらには持っている知識が高度で複雑な分、 間違った知識を持っていたとしてもなかなか表に出て来ないので発見に手間取る(=設計ミスが入り込みやすい)。

  このような現状に鑑み、巷の計算機チップはみな幼稚園児なRISCへとせっせと舵を取り直しているのだ。 例えばちょっと具体的な数字をあげてみると、PowerPC750(266MHz)はチップサイズが67平方ミリで消費電力が5.7Wなのに対し、PentiumII(300MHz)は203平方ミリで43Wも電気を食う。しかも性能の方は整数演算・浮動小数点演算とも、クロックの遅いはずの750が20%ほど速いのだ。ちなみに、我輩愛用のハンダごては30Wだぞ。徐々にではあるが、確実にIntel系チップは苦しくなってきているのがわかる。

  ここまでの基本的な部分、しっかり理解できたであろうか? しかし、残念ながら現実はそれほど単純ではない。 次回はこうなるに至った過程と現状、未来への展望を含めて、 多くの技術的な話題を一気に攻め落とすから心して待っていてくれたまえ。

written by

窓と林檎 | 日々是考難(blog) | トップ