[書評] もっとCPUの気持ちが知りたいですか?

2023.01.19

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、CX事業本部 IoT事業部の若槻です。

今回は、CPUと親しくなれる!という触れ込みの本である「もっとCPUの気持ちが知りたいですか?」を読んだので紹介します。

本の概要

  • タイトル:もっとCPUの気持ちが知りたいですか?
  • 販売サイト:PEAKS
  • 販売形式:製本版、電子版
  • 初版発行:2022年11月13日
  • 著者:出村 成和

この本はPEAKSでの技術書出版プロジェクトでのクラウドファンディングにより出版された本とのことです。最近はこのような形式での出版方法もあるんですね。

章構成

  • 第1章 CPUの気持ちを知るということ
  • 第2章 CPUと友達になろう
  • 第3章 アセンブリ言語をなんとなく読む
  • 第4章 CPUをざっくり把握する
  • 第5章 値を扱う(レジスタ)
  • 第6章 CPUができる事は多くない(命令)
  • 第7章 道は分かれる(分岐命令)
  • 第8章 シンプルなCPU、複雑なCPU(RISCとCISC)
  • 第9章 記憶の仕組み(メインメモリ)
  • 第10章 処理を効率よく実行する仕組み(パイプライン)
  • 第11章 手が届く範囲にモノがあると便利だよね(キャッシュメモリ)
  • 第12章 CPUと周辺機器との結びつき(I/O)
  • 第13章 多くの仕事を差し込まれる立場です(割り込み)

各章の内容はPEAKSのサイトで著者が簡単に紹介しているので合わせてご覧ください。

感想

CPUの動作や仕組みを、分かりやすい図や実際に動作するソースコードを使用して真面目に解説する一方で、時折りかわいいイラスト付きの平易な例えも挟んでくる、硬軟織り交ぜた読む人を飽きさせない本でした。

またこの本を読んでからは普段の生活や開発業務で次のような様々な場面でCPUの働きに思いを馳せるようになりました。

  • FlutterやReact Nativeが単一のソースコードでクロスプラットフォームで動作するのは低レイヤーの実装がOSやCPUアーキテクチャの違いを吸収してくれているから
  • 実装したアプリをローカルでビルドして動作させる際にはアセンブラが機械語に変換することによりCPUに読み取り可能な形式に変換してしている
  • 増築を重ねた温泉旅館のように、ARMと比べて歴史の長いIntelアーキテクチャは互換性を保つために複雑な構造となっている
  • PCに対してキーボードで文字入力をする際には、CPUが割り込み処理を行って他の処理との交通整理を上手く行ってくれている
  • プログラミングでループ処理を記述する際にその書き方によってCPUでの処理効率が変わってくる
  • if文などの条件分岐が行われるコードの実行では、CPUは分岐先の処理を投機的に前もって実行することにより処理を効率化している
  • とんかつの調理の効率化はCPUのパイプライン処理に似ている
  • 人がこたつの周りの手が届く範囲にモノを配置するように、CPUでは演算装置のすぐ近くにキャッシュメモリを配して高速にデータや命令を読み書きできるようにしている

私がこの本を読む以前にCPU周りの教養にがっつりと触れたのは6,7年前に受験した基本/応用情報技術者試験での勉強の時以来で、ここ最近は普段使っているパソコンや関わっている案件のIoTデバイスなどのハードウェアを意識することはあっても、その中で動いているCPUにまで思いを馳せることはほとんどなかったため、とても良い意識付けとなりました。

以上