コンピュータにおけるハードウェアを設計する人が少なくなってきています。現に、私は現在進行形で大学で情報学を学んでいますが、周りにハードウェア設計の経験があるという人は何人もおらず、その中でコンピュータの設計や、CPUの動作原理を知っている人はさらに少なくなります。その原因はいくつかあると思うのですが、例えば最適な入門書があっても、その次のステップに上るための本がなく、挫折して結局諦めてしまう人が多いと言うことも要因の1つとしてあると思います。

「コンピュータとはなにか」、「CPUの基本的な仕組み」などの書物はいくつかありますが、本書「コンピュータ設計の基礎」のように入門書でありながらも最新で現在使われている技術が紹介されている本はおそらくほとんど出ていなかったのではないかと思います。本書はコンピュータ・プロセッサの基本的な仕組みから、それをどのように高速化されてきているかを、わかり易く、筆者の考え方も踏まえて書かれており、この本を大学の講義で理解に苦しんでいる学生、趣味でプロセッサの設計をしようとしている人、ソフトウェアプログラマにお薦めしたいと思います。なぜソフトウェアプログラマかというと、ハードウェアに興味がなくても、コンピュータの歴史や、コンピュータの現在の仕組みを知ることにより、より最適なプログラムを書くための参考となることとなるはずだからです。

一般的な教科書レベルの内容から、一歩踏み込み、実際にコンピュータを設計するのに必要なレベルの内容を提供することを目的とした一冊となっている

私自身は、プロセッサアーキテクチャについて勉強をしていますが、特に、手順や規格が複雑な浮動小数点演算機の仕組みについても図も交えながらとても分かりやすく、書かれていたと感じました。このような本でありがちな、歴史的経緯が書かれていて旧来の方法のみしか書いていないということはなく、例えば割り算機の章では、IntelのCore2Duoに搭載されている「Radix-16」の構成法が書かれていたり、IEEE754-2008で追加された10進数の浮動小数点演算のフォーマットについても紹介されていて、それについての筆者の考えなども書かれていることも含め、非常に参考になりました。

本書は仕組みを説明する教科書ですが、ただ単に仕組みだけではなく、どのような順序でやれば効率が良いかということが明確に書かれていて、Verilog HDLやVHDLなどのHDL言語を書いたことがある方は本書に書いてある図や説明をそのまま書くことで高速な演算器を製作することも可能だと思います。

また、この本の特徴はアーキテクト入門者にも、比較的知っている方でも参考になるということと、内容がとても濃いが参考書感覚ではなく教科書として最初から読めるものとして構成されているということが挙げられます。実際に本書の中でも触れられていますが、ただ単に基礎を学ぶ教科書ではなく、比較的最新の事情について触れており、実践的な利用が可能です。このように内容が深い本だと、必要なときだけ見るというスタイルになりがちで、どれだけ分かりやすく説明していても入門者には混乱しやすいというのが常ですが、本書は教科書というだけあって、流れも意識されており、まったくの入門者でも苦労せず読むことができる構成となっています。

なお、本書は後編も予定していることが記載されており、その後編ではスーパースカラ、アウトオブオーダ実行、マルチプロセッサの仕組みについて書かれる予定となっています。これら実際に作るための説明を行った書物は英文のものは存在しますが、日本語の書物は残念ながら私は一切参考になりそうなものを見たことがありません。そういった意味も含め、、本当にコンピュータ・プロセッサアーキテクチャを極めてみたい人は後編と合わせて読んでみると面白いと思います。

「コンピュータ設計の基礎」


発行 毎日コミュニケーションズ
発売 2010年11月26日
著者 Hisa Ando
単行本 ソフトカバー・288ページ
定価:2,415円
○マイコミジャーナルにて連載中の「コンピュータアーキテクチャの話」をベースに「実際に設計できる」本当の"基礎"の提供を目指した「コンピュータ設計の基礎」として書籍化されました。コンピュータの基本設計「アーキテクチャ」。その設計を行うエンジニア「アーキテクト」に送る教科書として、実際にコンピュータを設計する場合に役立つ知識を提供する一冊となっています。(編集部)