草プログラマー、それはつまり草

CS 会計 司法試験 英語 bitcoin 数学 物理学 などいろいろなことを勉強してます

CPU・コンピュータアーキテクチャ入門 おすすめ本 アセンブラの基本からインテルのマニュアル、FPGAまで

計算機を作らずしてエンジニアにはなれません。

エンジニアを自称するなら計算機のひとつやふたつ自分で作りたいじゃないですか。

ということで計算機を創るのに必要な情報をまとめてみたいと思います。

基本的に、回路、プロセッサー、アセンブラ、コンピュータアーキテクチャなどのちしきが必要になります。

まあなんらかのプログラミング言語をちょっとくらいさわったことのあるエンジニアを前提にしておきます。

アセンブラ、マシン語の知識などは、プロセッサーやオペレーティングシステムを理解するには欠かせないものなので、C言語などの勉強をしたあとにはx86の勉強をするのがいいと思います。

X86というのは、インテルのプロセッサーのアーキテクチャでして、8086 80286 80386 80486 pentium 系統のものをそのように読んでいます。

皆さんが使っているパソコンの多くはインテルのプロセッサーですので、取り敢えず最初はx86を学ぶのがいいと思います。

ちなみにスマホでは、最近孫正義さんが買収されたARMがよく使われています。

プロセッサーには色々なものがありますが、とりあえず最初はx86、そのあとARM MIPS h8 などをいじってみるのが無難な気がします。

アセンブラ、マシン語を学ぶとコンピュータについて詳しくなりますので、全エンジニアが学ぶべきだと思います。

アセンブラを全くさわったことがないという人は、とりあえず大熱血アセンブラ入門がおすすめです。


大熱血! アセンブラ入門

大熱血! アセンブラ入門


この本はとにかく分厚くていろいろなプロセッサーを扱っているので全部読むのはかなり大変ですが、アセンブラがどんなものか知るのにはいいと思います。

全部読む必要はないので最初の200ページぐらいまで読んでみてアセンブラがどんなものかつかみ、その後他の本に写って、色々な知識をつけてからまた戻ってきて色んなアセンブラを楽しむのがいいと思います。

全体的にすごく読みやすいので、あんまりつまることはないんですがいかんせん量が多いので、律儀に全部読まなくていいです。


入門書としてははじめて読むマシン語も読んでおくといいと思います。


はじめて読むマシン語―ほんとうのコンピュータと出逢うために

はじめて読むマシン語―ほんとうのコンピュータと出逢うために


こにはじめて読むシリーズは大変良くできていまして。どれも読む価値があります。

特に、はじめて読む486は絶対に読んだ方がいいです。

マシン語、アセンブラの入門がとしては


はじめて読む8086―16ビット・コンピュータをやさしく語る (アスキーブックス)

はじめて読む8086―16ビット・コンピュータをやさしく語る (アスキーブックス)


こちらもおすすめです。

ただ若干読みづらいかなあ、と個人的には思います。


はじめて読む486


32ビットコンピュータをやさしく語る はじめて読む486 (アスキー書籍)

32ビットコンピュータをやさしく語る はじめて読む486 (アスキー書籍)


これは必読。

絶対に読んでください。

仮想記憶、セグメント、ページング、割り込みについてはダントツで1番分かりやすいです。

昔の本ですが、丁寧な語り口で、堅苦しくもなく、非常に読みやすいです。今まで読んだ技術書のなかで1位2位を争う良書です。

CPUやオペレーティングシステムについて学びたい人は必ず読みましょう。

感動的な分かりやすさです。

他の技術書もこのぐらい分かりやすければいいんですけどねえ。

この本は500ページ位あって、まあまあ量がありますが、分かりやすいので気負わずにどんどん読み進めましょう。


80386/80486プログラミングガイド

80386/80486プログラミングガイド

80386/80486プログラミングガイド

  • 作者: ロス・P.ネルソン,Ross P. Nelson,富士ソフトウエア教育出版部
  • 出版社/メーカー: 富士ソフトウエア
  • 発売日: 1992/04
  • メディア: 単行本
  • この商品を含むブログを見る


この本はインテルのマニュアルの簡易版みたいなものです。

はじめて読む486とこの本を読めばインテルのマニュアルを読むのに必要な知識は身に付いてると思います。

この本も500ページぐらいありますが、最初の250ページがアーキテクチャの解説で後半は命令セットのマニュアルみたいな感じになっています。


コンピュータアーキテクチャを理解するにはCPU、ディジタル回路の理解も必要なのでそっちの勉強もする必要があります。

CPUの本と言えば、もちろんこの本ですよね⁉


CPUの創り方


CPUの創りかた

CPUの創りかた


名著です。

特に命令デコーダの解説は秀逸です。

とても分かりやすく、コンピュータがどのように動いているのかがわかるようになります。

まあかなり初歩的なCPUですがそれでも感動すると思います。

余裕にある人は実際に作ってみるといいと思います。


CPU自作の本はもう1冊あげるなら


CPU自作入門


CPU自作入門 ~HDLによる論理設計・基板製作・プログラミング~

CPU自作入門 ~HDLによる論理設計・基板製作・プログラミング~


かなり実践的な内容で、HDLやFPGAどんなもんかつかむにはとてもいい本だと思います。

余裕のある人は読むといいでしょう。



ここまでくれば十分な知識があると思うのインテルのマニュアルやセミコンダクター(半導体)会社のデータシートをどんどん読みましょう。


ディジタル回路やアセンブラ、CPUの基本がわかったら、コンピュータアーキテクチャの勉強を本格的に始めるのがいいでしょう。


ディジタル回路設計とコンピュータアーキテクチャ

ディジタル回路設計とコンピュータアーキテクチャ 第2版

ディジタル回路設計とコンピュータアーキテクチャ 第2版


これは大変良くできていて、読者を次のレベルに引き上げてくれると思います。

MIPSアーキテクチャを扱っていて、読んでいて楽しい本です。

真面目な工学書ですが、はじめて読む486やCPUの創り方を読んだ人なら、普通に読み進められると思います。

この本でMIPSを理解したあとに、同じシリーズ(?)のARM版も読みましょう。



ディジタル回路設計とコンピュータアーキテクチャ[ARM版]

ディジタル回路設計とコンピュータアーキテクチャ[ARM版]


このぐらいまでくると回路設計やコンピュータアーキテクチャについてはかなり詳しくなっていると思います。

ちなみにこの本を書いている人はインテルでpentiumの設計をしたすごーい人です。


そしてコンピュータアーキテクチャと言えば、やはりパターソンヘネシーでしょう。

この二人は今年チューリング賞という大変名誉な賞をとった人で、コンピュータアーキテクチャの神と呼ばれています(私が勝手に呼んでいるだけかもしれない)

コンピュータの構成と設計


コンピュータの構成と設計 第5版 上・下電子合本版

コンピュータの構成と設計 第5版 上・下電子合本版


標準的なテキストです。

MIPSアーキテクチャを扱っています。

ぶっちゃけあんまり読みやすくはありませんが、えらーい先生がかかれた本なので読まないわけにはいきません。

といっても、ディジタル回路やアセンブラなどの基本的なちしきがあれば十分読めます。

ちなみに電子書籍で買った方がはるかにお買い得です。

まあ私はパタヘネ本よりもむしろヘネパタ本を重宝しております。


コンピュータアーキテクチャ


ヘネシー&パターソン コンピュータアーキテクチャ 定量的アプローチ 第5版

ヘネシー&パターソン コンピュータアーキテクチャ 定量的アプローチ 第5版


扱っている内容は結構高度ですが、今の時代に計算機を創るなら欠かせないトピックスを扱っているので、コンピュータアーキテクチャの深い理解をしたいなら必ず読むべきでしょう。

この本が扱っているような高度なトピックに関する本は他にありませんし、この内容のテキストがかける人なんて世界でこの二人ぐらいなのでじっくり読み込みましょう。



コンピュータアーキテクチャの理論としてはここから先は論文を読むことになります。


またコンピュータアーキテクチャの勉強とCPU自作は両輪で進めていくべきだと思っていて、今の時代にCPUを自作するならやはりFPGAがいいと思います。


FPGA の本ならここら辺がいいと思います。


FPGA ボードで学ぶ組込みシステム開発入門 ?Altera編?

FPGA ボードで学ぶ組込みシステム開発入門 ?Altera編?

FPGAプログラミング大全 Xilinx編

FPGAプログラミング大全 Xilinx編


FPGAをいじり倒せばコンピュータについてかなり詳しくなれます。

どんどんFPGAで色々な回路を試して見ましょう。




世の中には色々なCPUがあって、色々なアーキテクチャがあります。それがどういう思想や目的で設計されているのか、どういう用途で使うといいのかと考えながら色んなCPUをいじって遊んだり、自分でCPUを作ってみたりすることは本当に面白いことなので、お勉強というよりはお遊び感覚で楽しんでCPUをいじりましょう。

Copyright © 2016 へなちょこプログラマー All rights reserved.