コンピュータアーキテクチャ技術入門――高速化の追求×消費電力の壁
はじめに
コンピュータは,普及が著しいスマートフォンやタブレットに使われており,GoogleやFacebookなどのデータセンターにも大量に使われています。私たちの生活に欠かせないものとなっているコンピュータですが,そのしくみを知って使っている人は少ないのではないでしょうか。
本書は,コンピュータのしくみを理解したい人のための本です。コンピュータは,多くの科学者の研究や技術者の開発の成果であり,コンピュータがどのようなしくみになっているかは,それ自体が興味深い物語です。また,これらの技術を学ぶことは,コンピュータ関係の仕事に携わっている方,将来携わろうと考えている学生の方の役に立つことでしょう。
本編の解説では,コンピュータのハードウェアのしくみの説明が主ですが,そのしくみをうまく使って,性能の高いプログラムや消費電力を減らすプログラムの作り方についても多くのページを割いて解説しており,プログラマの方の役に立つ本になっています。
本書のタイトルでは「コンピュータアーキテクチャ」と冠した入門書と謳っていますが,本書は計算機科学(Computer Science)で言う「プロセッサのアーキテクチャ」の入門書ではありません。プロセッサの命令セットアーキテクチャやマイクロアーキテクチャについても解説をしていますが,アーキテクチャという言葉を広く捉え,プロセッサだけでなく,メモリやストレージ,さらに,最近重要性を増しているグラフィックスプロセッサ(GPU,Graphics Processing Unit),ディスプレイやタッチパネルなどの入出力装置などコンピュータ全般にわたって,これら主要な構成要素がどのような構造になっており,どのように動作するのかを解説しています。
スマートフォンやタブレッドなどの電池で動かす機器はもちろんですが,データセンターで使われるサーバでも消費電力の低減が強く要求されています。本書では,なぜ,プロセッサは電気を喰うのかから説明を始め,主要な低電力化技術から最新のCPUパッケージに搭載する安定化電源や,ソフトウェアと協調してプロセッサを長く休ませる省電力技術までを説明しています。いろいろな技術が組み合わされており,どのようにして低電力化が実現されているかは,非常におもしろいでしょう。
最近ではPCだけでなく,スマートフォンのプロセッサもマルチコアになり,並列処理を行っています。並列処理のメカニズム,注意点,どのようにプログラムを作れば,より高い性能を引き出せるか,より消費電力を減らせるのかについても説明しています。
また,記憶容量が増大し,SSD(Solid State Drive)としてHDD(Hard Disk Drive,ハードディスク)の領域まで進出してきたNAND Flashメモリ,スマートフォンからPCまで,入出力の主力デバイスとなってきている液晶パネルとタッチパネルの技術についても詳しく解説しています。
そして,ネットの向こう側にあるデータセンターやスーパーコンピュータについても解説し,これらのセンターへの電力供給から冷却までもカバーしています。
このように広い範囲のコンピュータ技術について解説している本は,他にないと自負しています。紙幅が限られているため,専門的な教科書のような説明はできませんが,重要なポイントを押さえて,コンピュータに関連する主要な要素について,それがどのようなものであり,どのような原理で動作しているのか,どうすればうまく使えるのかを理解してもらえるということを目指して解説を行いました。
本書の読者としては,コンピュータの構造を勉強したいという学生の方や若いエンジニアの方,そしてコンピュータがどう作られているかを理解して,性能の高いプログラム,消費電力の少ないプログラムを書きたいと考えているプログラマの方々を対象と考えています。
なお,コンピュータのしくみを解説するという点で,前著『プロセッサを支える技術――果てしなくスピードを追求する世界』(技術評論社,2011)と同じ分野の本であり,基本的な技術の説明対象は重複している部分がありますが,文章はすべて書き下ろしで,前著以降に出てきた新しい技術をカバーしています。本書を理解するために,前著を読んでおく必要はありませんが,プロセッサを中心とした基本的な技術については,前著の方が詳しく書かれているので,必要に応じて読んでいただければ幸いです。
本書が,コンピュータのしくみを学び,よりうまく使えるようにしようという方々の役に立つことを願っています。