この記事は、絵でわかる プログラムとは何か(1)~コンピューターの原理から~ の一記事です。
この記事は、コンピューターが誕生するまで からの続編です。
この記事のポイント
- 二進数( 0 と 1 )は、電気の OFF と ON で表現できる。
- リレースイッチは、電気のオン/オフを、電気のオン/オフで変えられるスイッチ。
- リレースイッチをつなげば、計算回路を作れる。
- トランジスタは、半導体でできたリレースイッチのようなもの。(出力のオン/オフは逆になる)
- トランジスタを使えば、回路を小型化・省電力化できる。
- 様々な計算回路は、同じようなパターン(論理回路)の組み合わせでできる。
- 論理回路の切り替えもトランジスタでできるようにしたのが、集積回路(IC)。
- 集積回路に入力する、1セットの ON / OFF パターン をマシンコードと言う。
- マシンコードには、回路切替のオペコードと、計算対象のオペランドがある。
- クロックで同期をとり、次々とマシンコードを処理する回路を同期回路と言う。
電気の OFF / ON
0 と 1 の二つの数字は、指の下向き/上向き でも表せます。2種類の区別ができるものなら何でもいいので、電気の OFF と ON でも表せます。この宇宙で一番速いものは光や電磁波などの電気変動なので、早く計算結果が出せるよう、電気の OFF と ON で数字の 0 と 1 を扱える計算機が作られるようになりました。
スイッチのリレー=電気回路
電気を使って自動計算をするには、電気回路 を使います。電気回路とは、電気の通る道を電気で切り替えるスイッチの集まりです。電気の通る道を電気で切り替えるスイッチを多数つなぐと、リレー競技のバトン渡しのように、スイッチ間で次々と切替動作を引き継げます。このようなスイッチをリレースイッチと言います。リレースイッチは、小学5年で習う「電磁石」の原理を応用して作られます。
計算回路(ワイヤードロジック)
電気回路を利用すれば、[何桁かの数値]を、別の[何桁かの数値]に、自動変換することができます。
下図は、2つの ON / OFF 入力(各1桁の数値)から、2つの ON / OFF 出力(合わせて2桁の数値)に、自動変換する電気回路の例です。この変換は、二進数の足し算(加算)の計算結果と一致します。このように計算目的で作られた電気回路を、電気計算回路と言います。
そして電気計算回路は、その回路をどう設計するかで、違う計算処理をさせることもできます。つまり、回路の設計こそが、世界最初のプログラムだったのです。
このような回路配線によるプログラムをワイヤードロジック[ wired logic : 結線論理 ]と言います。
ワイヤーは金属線です。ロジックは「こうなら、こう。」という理屈のことです。
「この入力なら、この出力。」と、金属線でできた回路によって、常に設計通りの結論が出せるので、ワイヤードロジックと言われるのです。
電気回路(リレー) ⇒ 電子回路(トランジスタ)
リレースイッチの集まりである電気回路は、装置サイズが大きく、消費電力も大きなものでした。
そのため、計算回路は、半導体でできた電子スイッチ(トランジスタ)による、小型で省電力の電子回路に取って替えられました。
論理回路(計算回路の素となる電子回路)
トランジスタへの置き換えで、より複雑な回路も小さな電子基板で組めるようになりました。
しかし、計算式を変えるたびに、人の手で、小さな小さな電子回路を組み替える、というのもなんだかナンセンスです。(ラクをするために作ったはずなのに、これじゃちっともラクじゃない!)
そこであらかじめ、いくつかの計算回路の素になる共通の回路(論理回路)を、基板上に適当に配置・配線しておきます。
通常、1つの論理回路には、数個~数百個のトランジスタが使われます。
そして、それらの論理回路同士の間の配線も、電子スイッチ(トランジスタ)による電子制御で切り替えてしまおう、という発想に行き着きました。
集積回路(IC)
このように複数の論理回路を基板にあらかじめ配置しておき、電子制御でその組み替えをできるようにした回路を集積回路(IC: Integrated Circuit)と言います。
そして最近では、何万個もの論理回路を組み込んだ集積回路さえ作られるようになりました。
マシンコード
ICには、外部から電子制御をするための、複数の ON / OFF 入力スイッチ(ブラックボックスの各辺に並べられた金属端子=俗に言う「脚」)が付けられています。
そして、そこへ入力する ON / OFF パターンを、マシンコード(機械語)と言うようになりました。これが第二のプログラムです。
同期回路
さらに、複数の計算を連続的にさせるためには、複数のON / OFFパターンが必要です。
そこで、連続的に複数のON / OFFパターンを読み込めるように、クロックから連続的に発信される ON / OFF 信号に同期して、順次 ON / OFFパターンを読み込む集積回路も作られました。これを同期回路と言います。クロックは、水晶に電気を通して得られる一定周期の振動現象を利用した、発信装置です。
クロック同期で論理回路を組み替え
同期回路によって、より複雑なプログラムが作れるようになりました。ここからようやく今風のプログラムが始まったと言っても良いでしょう。
同期回路では、論理回路を組み替えるための ON / OFF パターン と、計算対象のデータとしての ON / OFF パターン を、クロックに同期して順次、集積回路に入れられます。
なお、論理回路を組み替えるための ON / OFF パターン をオペコード(opcode)と言い、計算対象のデータとしての ON / OFF パターン をオペランド(operand)と言います。
同期回路は、オペコードとオペランドを、クロックに同期して順次読み込む集積回路とも言い換えられます。
この記事のまとめ
二進数( 0 と 1 )は、電気の OFF と ON で表現できます。電気のオン/オフを、電気のオン/オフで変えられるリレースイッチをつなげば、計算回路を作れます。トランジスタを使って、計算回路はさらに小型化・省電力化されました。
様々な計算回路は、同じようなパターン(論理回路)の組み合わせで作られます。その論理回路の切り替えもトランジスタでできるようにしたのが、集積回路(IC)です。
集積回路に入力する、1セットの ON / OFF パターン をマシンコードと言います。クロックで同期をとり、次々とマシンコードを処理する回路を同期回路と言います。マシンコードには、回路切替のオペコードと計算対象のオペランドがあります。
次は、メモリ に進みましょう。
この記事は、絵でわかる プログラムとは何か(1)~コンピューターの原理から~ の一記事です。
コンピューターのしくみ全体を理解したい場合は、以下の2コースがお勧めです。
日本全国 オンラインレッスン にも対応しています。
知りたいことだけ単発で聞きたい場合は、 オンラインサポート をご利用ください。