まつたろうの歩み

PythonやCの勉強中に「指し示す」いう表現がありました。それを知りたくて今はコンピュータシステムを勉強しています。

コンピュータシステムの理論と実装、ようやく第2章が終わりました。

「コンピュータシステムの理論と実装」約3ヶ月かけ、ようやく第2章が終わりました。下の写真がオライリー社から出版されている本です。

f:id:kmatsutaro:20220220075407j:plain

コンピュータシステムの理論と実装

メモ:

 人間は期待どおりにはほとんど動かない。コンピュータも期待通り動かないことが多いが、記述したコードのとおり動いている。(まつたろうのひとり言)

なぜNANDゲートを使うか。使用するICがNANDゲートで構成されている。

NandはNotAnd(AndをNot反転させたゲート)これで、すべての回路が構成できる。

使用するトランジスタの個数が少ない。Nand(4個)And(6個)。

 

基本的な学習法は、本書と公式Webページを中心にして考える。

わずかな具体例から、自分なりに考える。

「Hdlの記述」については、「Xorの例」と「付録A」にある。

シミュレーターの使い方は「DEMO」の動画で確認。

回路図をかく。コードをかいてみるシミュレーターで試す、回路図を修正する。書き直しシミュレーターで試す、正しく動作するまでひたすら繰り返す。

 

グーグルのChromeを使う、日本語訳を表示させる。

チュートリアルなどのPDFはグーグル翻訳にコピペし、訳す。

シミュレーターのエラーメッセージをグーグル翻訳で訳し、検討する。

公式サイトの「ハードウェア構築サバイバルキット」と「Q&A」の生徒と先生のやりとりがかなりヒントを与えてくれる。(2章まで)

f:id:kmatsutaro:20220220075605j:plain

Q&A

f:id:kmatsutaro:20220220075703j:plain

ハードウェア構築サバイバルキット

---4月19日この部分を追記しました---

この本は、とてもよく練られた本だと思います。何回も本を読ませ、調べさせ、考えさせます。学習書にはお勧めです。ただ、この本の前に論理回路の製作をされておくと更に理解が深まると思います。私が作った論理回路作はすでに紹介しましたが、下です。

kmatsutaro.hatenablog.com

第2章の途中で気づいたのですが、WebのProjectsのページがとても参考になります。

資源はプロジェクトにあります

始め、左の工事している図のところしかみていませんでした。右側にリンクがあるとは気がつきませんでした。特に、真ん中のレクチャー資料は参考になります。私の場合は、印刷してグーグル翻訳を駆使してしか利用できませんけど・・・。追記終わり

---------------------------------------

プロジェクト1

図1-2 2変数ブール関数 *最重要

x Or y = (x Nand x) Nand (y Nand y)

 *上式はNandを用いて記述してある。これを使って考えていく。Nandはメモに真理値表や入出力を書いておく。

Xor(a,b) = Or (And (a,Not(b)), And(Not(a),b))

XorのHDLプログラム。シミュレーターでhdlを開いてみる。

Notゲート:入力は1つ、出力は1つ。Nandの入力は2つ、出力は1つ。NandはAndを反転させたもの。

Andゲート:Nandを反転させたもの。

Orゲート:唯一本書に記載がある上式を参考する。

Not16:16本のバスから16桁の2進数の信号が届く、それら全てをNot反転する。

マルチプレクサー、デマルチプレクサー:数本のSelの内、入力が全て1になるところを使う。Andはその時出力1、Nandは出力0。まず考えやすいAndゲートとOrゲートで設計、動作確認する。Nandゲートに少しずつ組み直す。

論理式:トラ技5月号を参考。ド・モルガンの法則はNandゲートそのもの。不足分は検索し、たくさんの大学の先生に教えていただきました。感謝申し上げます。

プロジェクト2

半加算器:解説の通りつくる。

全加算器:半加算器2個でつくった。勘違いで、Carryを2段目につないでしまった。

加算器:全加算器をつないでいく。

インクリメンタ:1を入力してもだめだった。どうすれば1を加算できるか、ハードウェア構築サバイバルキットを何回も読んだ。

ALU:「Q&A」のやりとりからヒントをもらった。入出力のようすから、Dmux16を使わなければいけないと思いDmux16をつくった。ng出力は簡単にできた。サブバス。zr出力はハードウェア構築サバイバルキットを参考にした。正常に動作するようになった。そこからDmux16を1個ずつ外しながらテストした。全部外しても動作した。1時間もかからなかった。先生が言うように、6個もつけたDmux16は不要だった。

 

編集後記

 コンピュータシステムの理論と実装の勉強は楽しいです。4千円くらいの本ですが、難易度が高くあと半年くらいはかかりそうです。他に部品を買ったりしないでよいので安上がりです。まもなく自営業を廃業しますので、完全に年金生活者になります。年金生活者の財布にも優しい本です。

 カーリング女子銀メダルおめでとう!感動しました。