デッドライン読書会でパタヘネを読み始めた:コンピュータと構成と設計上巻前編

 デッドライン読書会もついに記念すべき42回目となりました。長続きしている。それだけデッドライン(締切)はエンジニアには特別な存在ということですね。「読書会を続けているとな、どんな志があってか?(吉田松陰風)」「いや…志の前に締切がありまして…」てきな。

課題図書(と、余談)

 今後4回は通称パタヘネと呼ばれている名著に着手することにしました。パターソン&ヘネシーの「コンピュータの構成と設計」です。MIPS Editionの第6版を読み進めています。紙の書籍で。

コンピュータの構成と設計 MIPS Edition 第6版 上
「パタ&へネ」の名で親しまれる古典的名著の第6版。コンピュータ技術の初歩からモバイル/クラウド時代の最新のテーマまで深く解説。第6版での主な改訂内容は下記のとおり。 ■「高速化」に関する節をすべての章に含めるようにした。第1章で、行列の乗算プログラムをPython 言語で組む。これは性能が低いので、2章ではC言語を学習...

初回の今回の範囲は、上巻の1章と2章が範囲でした。

 パタヘネといえば、エンジニアって名乗るにはいずれこの本は読んでおきたいな~と(私が)思っている3冊のうちの1冊です。残りは、Code Completeとプログラミング言語C++かなぁ。Code Completeは10年ほど前に読んだので、パタヘネを読んだら残りはストラウストラップ先生だけとなる。(10年後くらいに読もう・・・)

【電子合本版】Code Complete 第2版 完全なプログラミングを目指して
この電子書籍は、「Code Complete 第2版 完全なプログラミングを目指して」の上下巻を1冊に&...
プログラミング言語C++ 第4版
プログラミング言語C++ 第4版

感想

 今回の範囲の章タイトルは下記の通り。

  • 第1章:コンピュータの抽象化とテクノロジ
    • コンピュータのアーキテクチャについて概観。設計のポイントとなる観点と歴史についてもふりかえる。
  • 第2章:命令:コンピュータの言葉
    • アセンブリ言語、命令セット、コンパイラなど。

本書は大学の講義に使われることを想定して作られている様子。いきなり突拍子もない難しいことが出てくるわけではなく、平易なことから難しい問いへ、トップダウンで全体像から詳細へが意識して構成されており読みやすい。また第6版ということもあり翻訳もちゃんとしていてすらすら読めるイメージです。

題材が新しい

 第1章でコンピュータの内部構造について解説があるが、題材として取り上げていたのは、iPhone XS Maxの論理基盤であった。モバイルデバイスのチップを題材にするとはちょっと感動。ここの記事の写真が使われているようである。

Apple iPhone Xs Max Teardown
We have the iPhone Xs Max, model A1921, with 256GB capacity in our labs. As we do every year, we will update this blog post with our findings as soon as we can....

 また本書(上下巻)を通じて得たアイデアを例証するために「行列演算」を各章ごとに高速化することにチャレンジするみたい。第1章ではPythonで実装したこんな演算を、、、

for i in xrange(n):
    for j in xrange(n):
        for k in xrange(n):
            c[i][j] += A[i][k] * B[k][j] 

第6章までに44,226倍まで高速化するんだそうな。最初の例がPythonだっていうのもいい。

馴染みのある内容と無い内容がいったりきたり

 2章で特に感じたが、馴染みのある素通りできるような内容と、ちょっとページを止めないと理解が追い付かない内容が混ざっている感じ(それが私の実力ってことなだけですが)。X進数や基礎的なプログラミング言語の構文はすらすら進められるけど、レジスタや、アドレッシング、命令セットアーキテクチャの話しになると指が止まる。このことから考えるに、独習で読み進めたい場合には、プログラミング経験があって、応用情報処理技術者試験に受かっているような人だと、着手できるんじゃないかなぁ。(ちなみに情報系の大学だとだいたい2年生くらいで授業があるようですね)

というわけで引き続き頑張る

上巻の後半は7月4日からです。引き続き頑張って読もう。

コメント

タイトルとURLをコピーしました