「コンピューター技術書の温故知新 第十回 人類が知っている唯一のコンピューターとは案外簡単である」大野典宏

コンピューター技術書の温故知新

第十回

大野典宏

●人類が知っている唯一のコンピューターとは案外簡単である
 最近は何かというとAIの話ばかりである。しかし、コンピューターの仕組みを考えてみると、言われたこと(プログラムで書かれたこと)しかできないという基本的にタワケた代物にすぎない。確かに要素技術に関してはかなり難しい話にもなるのだが、今のディープラーニングは、基本的に「知識を集めて帰納法で考えている」だけにすぎない。つまり、もう一つの論理思考である演繹法ができないのだ。それは人間が行うしかない。
 デカルトの演繹法とベーコンの帰納法って有名なのだが、両者には致命的な落とし穴がある。
 まず、演繹法の落とし穴は、「最初が間違っていたら必ず誤った結論にしかならない」。これである。また、思考の組み立てで得られる範囲には必ず言及不可能なものが出てくる。これって当たり前だが、見過ごされがちである。
 そして、帰納法の欠点は、「ヒュームの呪い」と呼ばれている。「今までと同じことがこの先にも必ず起きるとの保証はない」との単純だけど、言われてみれば確かにそうだと気がつく程度のことにすぎない。
 で、そのような欠点を持った論理的思考の枠組みの中で、万能の機械が実現できているなどという幻想は捨てたほうがいい。帰納法しかできない現在のAIが人間を超える? 何を言っているのかという感じでしかない。
 コンピューターで組み込みというと、PCとは別の次元だと思われているのかもしれないが、市場に出回っているコンピューターの大半が組み込みであることを忘れてはいけない。単にPCが目に見える形で存在しているから、PCこそがコンピューターだと思われてしまっているのかもしれないが、PCの周辺機器はたいてい組み込みコンピューターなのである。
 まぁ、もともとは組み込みコンピューター専門の技術書籍の企画を立てて原稿の中身をチェックしていた身としては、CPUと周辺のハードウェアも含めて考える癖がついてしまっているので、組み込みコンピューターのほうがCPUもOSもバスも多種多様で面白いことは確かなのである。
 インテルとARMのアーキテクチャだけで終わることのない世界を見てこそ、初めてコンピューターの応用分野は果てしなく広いことを知ってもらえれば幸いだ。

ーーーーーーーーーーーーーーーーーーーーーーー
書評 2009年4月17日

組み込み分野に限らない,とても大切なことが書かれている本

『組込みプロセッサ技術』
枝廣正人,黒田一朗著
協力 中森 章
監修 情報処理学会組込みシステム研究会
CQ出版社
ISBN-10: 4789845494
ISBN-13: 978-4789845496
263ページ
2,800円(税別)
2009年3月

 CPUというと複雑で難しいLSIと思えるかもしれませんが,実は原理を煎じ詰めると「恐るるに足りないくらい単純な物」なのです.
 一般に使われているノイマン型コンピュータが行っていることとは
1.プログラム・カウンタの値が示すアドレスの命令を呼び出す
2.命令をデコードし,実行する
3.その結果,次に呼び出す命令のアドレスをプログラム・カウンタに代入する
と,ただこれだけの事にすぎません.
 では,なぜに,今のように複雑なLSIだと思われるようになってしまったのでしょうか.
 それは「より便利にしたいから」という,その一点につきます.周辺機器へのI/Oはあったほうが良いに決まっています.ストアード・プログラム型ですから,メモリ管理や高速メモリ・バスが無ければ速度が稼げません.命令は多い方が良いに決まっているし,できれば並列に命令を処理してくれたり,浮動小数点計算などは別のユニットで行った方が良いに決まっています.
 そして,目的に応じて,その処理に適したCPUを用意した方が便利なのは当たり前のことでしょう.それでCISC(Complex Instruction Set Computer),RISC(Reduced Instruction Set Computer),DSP(Digital Signal Processing)といった区別ができたり,VLIW(Very Long Instruction Word)やSIMD(Single Instruction-Multiple Data)のような考え方が出てくるわけです.
 ですから,事の本質を複雑にさせているのは周辺機器の情報や命令体系だけの問題であって,それが違うだけだと考えれば,単なる「言われたことしかできないデクノボウなLSI」でしかないのです.
 というわけで,コンピュータ・アーキテクチャの特徴を活かしきるのは難しいが,CPU単体を理解するのはそれほど難しいことではないということをまず理解してください.
 ところで,最近,「組込み」って聞きますけど,「組込み」とそうじゃないコンピュータの区別などは,もはやありません.
 使っているCPUは同じ,OSも同じ,開発環境も同じ…で,分けて考える方に無理があるのです.
 確かに,黎明期はPC本体よりも実は周辺機器の方が処理が複雑で,機械制御なども含まれていたため,組み込み機器の方が高度で値段も高いというねじれた時期もありましたが,今はもう関係ありません.スマートホンとPCで動いているCPUは同じ,OSも同じで,違うのは箱の大きさだけ…というのが当たり前の世界になっています.
 というわけで,今回紹介する本書ですが,はっきりと指摘すれば,タイトルで損をしています.「組込みプロセッサ技術」ではなく,立派なプロセッサ・アーキテクチャ総論になっているのです.
 パソコンでテレビが見られて,携帯電話でもテレビが見られる,そしてテレビでもテレビが見られる…要するに,中の機能は一緒だと暴露しているようなものです.そろそろ「組込み」という言葉にこだわったり,カテゴリの中に居続ける必要はないと考えています.
 本書では,プロセッサの基本的な事項から始めて,いかに速く,いかに効率良く,いかに省電力に,いかに簡単に開発できるのか.そういった工夫を網羅的に解説しています.これまでにプロセッサがたどってきた歴史と,その時々で行われた工夫が垣間見えるので,かなり興味深い作りになっています.
 特筆すべきなのは,これから主流になっていくと予想されるマルチコアのプロセッシング技術について,詳細に解説している点でしょう.SMP(Symmetric Multiprocessing)とAMP(Asymmetric Multiprocessing)の違いや,各プロセッサのコアを効率よく動かすプログラミング手法にまで触れられているので,これからプロセッサのことを学ぼうとする読者にとっては最もタイムリな本だと言えるかもしれません.
 ただ,残念なことは,こういう種類の本は,年々寿命が短くなっているという点です.マルチコアが普通になり,OSもコンパイラも対応が完了する頃には,次のコンピューティング手法と言われているグリッド・コンピューティングが民生品のレベルにまで落ちてくることでしょう.
 そうなると,グリッド・コンピューティングで問題になる,解法の分析と分割という新しい数学的な問題に直面します.
 すでに,チューイング・ガム程度でもLinuxが動くボードが販売され始めていますが,そういった安いボードを何枚も並べて1台の小さなマシンの中で並列計算や分散計算を行うことも夢ではなくなってきています.
 たぶん,本書の寿命はあまり長くないかもしれません.今はそれくらいに社会の需要の変化の速度が速いので仕方がありません.でも,少なくとも当面は,本書に書かれている知識くらいは持っておかなければならないとだけは指摘しておきましょう.
 勉強と思うと厳しいですけど,実際に読んでみると先人の苦労が垣間見えて面白いですよ.