まつたろうの歩み

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

CPUはこうやって動いている1

前にトランジスタ技術のことを書きましたが、昨年私のサイトでアップしていた記事があります。それを、今回紹介します。昨年の6月の記事です。

全加算器をつくりました。

トランジスタ技術2020年8月号は、私が追い求めていた本でした。執筆していただいた別府伸耕先生には、感謝申し上げます。

 下の写真が、全加算器です。計算器の一番基本的な要素単位です。二進数で1+1は10、黄色のLEDが点灯し、桁上がりの(1)0を意味しています。半加算器2個とORゲート、詳しく書くとEXORゲート2個とANDゲート2個とORゲートでなりたっています。この加算器は1ビットで繰り上がります。普段使っているコンピュータは、この加算器を64ビットなので64段構えています。その他ROMやALUなどたくさんの回路からなりたっています。半導体バイスの集積化が進歩したので、今のような世界ができています。

f:id:kmatsutaro:20220206101609j:plain

全加算器

 今年はC言語の学習を中心にやっていました。その中にコンピュータについてその仕組みを知っておかなければ、納得できそうもない内容がありました。そこで、コンピュータの仕組みの本を購入したり、図書館から数冊借りて調べたりしました。しかし、ブラックボックス化した論理回路の説明などが中心で回路図等は出てきませんでした。論理回路がどうなっているのか、トランジスタを使った回路で理解したいと思っていました。ようやく求めていたその本に出会えました。それがトランジスタ技術2020年8月号です。まさにハテナ?の世界でしたが、ブラックボックスをこの本がこじあけてくれました。
 私はキットも購入しました。付属のDVDでは3時間ほどの十分な解説があります。それだけでも、わかったようになった気がしました。下の写真は私が購入した本誌とmarutsuから購入したキットです。

f:id:kmatsutaro:20220206101708j:plain

まず動作チェッカーをつくって、論理ゲートを作り始めました。部品が小さく大変でした。

 動作チェッカーははんだごてや工具を使って30分程度で完了しました。作った回路が正しく真理値表どおりに動作するか、結果がLEDでハッキリと出ます。わかりやすいので、お勧めです。

f:id:kmatsutaro:20220206102012j:plain

動作チェッカー

 さて、いよいよ論理ゲートの製作です。これまで使ってきた部品より、かなり小さく苦戦しました。手持ちのピンセットではうまく挟めません。米粒より小さいチップLEDをだめにしてしまいました。この作業では、しっかりしたホーザン製のような先細のピンセットが不可欠です。翌日、朝イチで買いに行きました。ケースの中にある小さな正方形の基盤が、基本ゲートです。

f:id:kmatsutaro:20220206102112j:plain

使った道具

製作した論理ゲートを紹介します。

 まずNOTゲートです。MOSFETを使った一番基本的なゲートです。

f:id:kmatsutaro:20220206102240j:plain

NOTゲート

 次に2入力NANDゲートです。これも基本的な回路です。

f:id:kmatsutaro:20220206102348j:plain

NANDゲート

 次に2入力ANDゲートです。NANDゲートにNOTゲートを組み合わせてあります。

f:id:kmatsutaro:20220206102443j:plain

ANDゲート

 2入力ORゲートです。ANDゲートを逆さにしたような回路です。

f:id:kmatsutaro:20220206102557j:plain

ORゲート

 次にEXORゲートです。部品の数も多く、回路も理解するのが大変でした。

f:id:kmatsutaro:20220206102704j:plain

EXORゲート(XORゲート)

 主役の論理ゲートがそろったので、とりあえず半加算器をつくりました。EXORゲートとANDゲートでつくります。ラズパイで使っていたブレッドボードやコードを用いました。電源スイッチやLEDも使うつもりで始めたのですが、うまくまとまりませんでした。動作チェッカーを流用することを思いつき、コードを作りました。(後日DVDを見ていたら、先生も同じようなもので実験を演示しておられました。よく見ていませんでした。)

f:id:kmatsutaro:20220206102823j:plain

入力用コード

 半加算器ができました。

f:id:kmatsutaro:20220206102934j:plain

半加算器

 付属のDVDでは、別府先生が丁寧に実演も交えて説明してくれています。とても参考になります。 

f:id:kmatsutaro:20220206103021j:plain

DVD画像

編集後記

 久しぶりに気合いを入れて取り組んだ、はんだ付けでした。40年以上前の中学生時代に真空管ラジオを作った時、以来のようです。最近まで結構はんだ付けはしてきました。しかし、まだまだ修行が足りません。部品が小さすぎます。老眼もすすんで苦労します。すでにチップLEDを数個だめにしてしまいました。全加算器を作って、動作が一部おかしいのでゲートを全部はずしてチェックしてみたら、ANDゲートが正しく動作していませんでした。一応できあがったら動作チェッカーで確認していましたが、見落としていたようです。はんだ付けをし直しても直りませんでした。部品を壊したかもしれいないので、あきらめて始めから作り直しました。ようやく正しく動作したので、全加算器ができました。前のANDゲートの分の部品と壊した部品とか、少し補充が必要です。

今日の日記(2021/6/22)
 ようやく今週ワクチンが打てるようになりました。ありがたいです。それまでも、十分行動には気をつけないといけません。