スイッチでどうやって計算するの?コンピュータの計算方法が知りたい!
コンピュータはスイッチで構成されており、ディジタルな信号のみで計算しています。そこにはディジタル回路の様々な技術が生かされています。
そこで今回は前回に引き続きリレー電卓の仕組みを解説する中で、加算器の仕組みについてお話ししようと思います。
こんにちは。Jinです。夏の終わりが近づいてまいりましたが、皆さんいかがお過ごしでしょうか。
今回は最後にリレー電卓の加算器とデコーダー(表示器)の紹介をしたいと思います!入力機やデコーダーに関してはJLCPCBにて発注を行いましたので、併せてチェックしてみてください。
加算器の仕組み
それではまず、加算器の仕組みから順を追って説明いたします。前回のようにリレー電卓はディジタル回路をもとに計算していますので、その理論的なところからお話しします。
論理ゲートを用いた加算器
まず加算器を構成するものに、半加算器Half-Adderと全加算器Full-Adderがあります。Half-Adderはコンピュータを構成する最下位の組み合わせ回路で、ANDとXORを組み合わせて出来ます。
Half-Adderの真理値表が下になります。二進数の1bitの加算を忠実に再現できていることが分かりますね。
A | B | C | S |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 |
1 | 0 | 0 | 1 |
1 | 1 | 1 | 0 |
しかしこれで完全な演算をすることは不可能です。というのも、実際の2進演算では下位bitからの繰り上げを考慮して演算する必要があるためです。
しかしHalf-Adderは便利なことに、上位bitへの繰り上げ出力(C)が設定されていますので、Half-Adderをつなげるだけで完全な加算器を作ることができます。これがFull-Adderとなります。
Full-Adderの真理値表は以下のようになります。A+B+Ciを見事に演算できています。
A | B | Ci | Co | S |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 1 |
0 | 1 | 0 | 0 | 1 |
0 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 1 |
1 | 0 | 1 | 1 | 0 |
1 | 1 | 0 | 1 | 0 |
1 | 1 | 1 | 1 | 1 |
このようにして1bitの加算をFull-Adderで行っています。しかし実際のコンピュータはもっと複雑であり。1bitのコンピュータはこの世界に存在しません。
そこでこのFull-Adderをn個横につなげてn-bitの加算器とするのです。このようなつなげて演算を行う加算器を、並列加算器と言います。
リレーで作る加算器
それではこの加算器を実際にリレーでシーケンス制御を用いて設計してみるとどうなるでしょうか。
1bitのFull-Adderから順にご説明しようと思います。まずは回路図ですが、このような感じになっています。
少しわかりづらいですが、前回紹介したXORやOR、ANDを組み合わせて論理回路を忠実に再現しているのが分かると思います。
エンコーダから自己保持した入力をリレーで受け、リレーの接点間を配線で巧みにつなぐことでこれを実現することができます。実線配線図は以下のようになりました。
RB0やRC0は減算用にビットを反転して1を足す、補数を行うためのものです。2の補数と呼ばれるものを加算することで減算に転じることができます。
補数などの論理の基礎知識は今後書こうと思いますので是非チェックしてみてください。
さて、このFull-Adderを4bit組み合わせたネットワークが下のようになっています。使用しているリレーは骨董品ですが松下のHJパワーリレーとなります、とてもかわいいです。
非常にややこしいですが、Full-Adderをリレー4つで再現し、各々のFull-Adder同士を接続して上のようになっております。
デコーダの仕組み
演算結果は非常にややこしく、0~18までの19個と、-1~-9までの9個が組み合わさって28個の出力結果それぞれに対してデコードをする必要があります。
演算結果5bitの入力を上から28個分の出力に振り分けているのが分かります。この28個分振り分けた演算結果を、次は桁ごとに振り分けます。
10の位は0,1,-の、3パターン、1の位が0~9の10パターンとなり計13パターンまで分けることができます。
この13パターンの演算結果を次は表示器に出力していくことになります。デコーダーに関してはJLCPCBにて発注を行っていますので、是非チェックしてみてください!
表示器の仕組み
表示器では、デコーダーから受け取った信号をもとに7セグメントLEDを点灯させます。
これは1桁目の表示器になりますが、0~9の数字に対して配線を振り分けていることが分かります。2桁目も同じようにして表示を行い、リレー式電卓が完成します。
さいごに
いかがだったでしょうか。今回は前回に引き続きリレー式電卓の仕組みを解説させていただきました。
加算器は巧妙なスイッチの組み合わせで、複雑に絡み合ったネットワークを構成していますが、このようにして演算をコンピュータの内部では行っています。
デコーダーや表示器も、回路自体は複雑なものの、構成はそれほど難しいものではなく、2進数の演算を非常に上手く再現できていますね!
今回は電卓のみの製作となりましたが、この仕組みを利用すればカウンター回路なども作製でき、自作CPUも夢ではありませんね!
また基板の発注を依頼しているJLCPCBも是非チェックしてみてください。
それではまた!GoodBye!