「JK-FFでD-FFを作る」の回答を書いていて、ふと気付いた。
「論理回路って、なんですか?」って質問をした人は、ごく単純なコトを聞こうとして質問したのかなぁ〜って。
その点、「論理回路って、なんですか? その壱」の回答は、ちと哲学に走りすぎたかもしれない(^^;
とゆーワケで、その弐を作ってみましたw
|
論理回路とは、例えば下記のような動作をする回路を、お気楽に実現可能とするものです。
電源がONされたら、 |
|
「Welcome」っていう画面を表示する。 |
近くの基地局の電波を探す。 |
|
基地局の電波が見つかった場合 |
基地局に「自分は生きてるよ」ってメッセージを送信する。
基地局の電波の強さを測定して、アンテナマークを表示する。 |
基地局の電波が無かった場合 |
「圏外」って文字を表示する。 |
基地局からの呼び出し(着信)があるか調べる。 |
|
音声通話の着信がある場合 |
着メロを高らかに鳴らす。 |
メールの着信がある場合 |
基地局にメールを送ってもらい、受信箱に保存する。 |
ユーザーがキー操作してるか調べる |
|
電源キーが長押しされている場合 |
電源をOFFにする。 |
0〜9のダイヤルキーが押されている場合 |
押されている番号を画面に表示する。 |
・・・以下略。。とてもじゃないけど書いてらんないw |
上の表に書いたよな動作をする装置って、何だか判るよねぇ。今じゃたいてーの人が持って歩いてる。
んでも、上表のペースで書いてったら、ぜんぶ書くのに何行要るかね。。
ってか、上の表のアイマイな機能記述レベルじゃ、何行あっても書いたコトにならないか(^^;
|
「え〜でも、そゆのってプログラムがやるんじゃないの?」って思った人、そだよw
そだけど、プログラムを実行するCPUは論理回路で出来てるし、プログラムを格納するメモリも論理回路で出来ている。
(CPUがどんな論理回路なのかは、「お気楽CPUを作ってみちゃったり」を参照のこと〜♪)
プログラムを使わずに、全て論理回路で作っちゃうことも、たぶん可能だ。
現にCPUが一般化する前の時代のテレビゲームとかボーリングのスコアを計算してくれる機械とか、「プログラムを入れ替えるコトで異なる動作をする論理回路」じゃなく、「プログラムを必要とせず、設計時に決められた動作しかしない論理回路」で組まれたものも存在した。
ただ、恐ろしく複雑になっちゃうけどね。
デジタル時計(時刻あわせ機能のあるヤツねw)くらいだったら、CPU使わずに論理回路ダケで組んでしまうことも、そう難しくない。
デジタル時計に、任意の時間を指定できるアラーム機能と閏年を自動処理するカレンダー機能と100分の1秒まで計測できるストップウォッチ機能とが付いたら、もう論理回路だけじゃなくCPU+プログラム使ったほうが楽だろうなぁ。
ソフトウェア |
アプリケーション
ライブラリ
OS |
複雑
↑
↑
論理の
複雑さ
↓
↓
簡単 |
ハード
ウェア |
デジタル回路 |
CPU、メモリ
USBインタフェース
Videoカード |
アナログ回路 |
スイッチ回路 |
LCDドライバIC |
メカ・デバイス |
キーボード |
LCDパネル |
だから、ハードウェアとソフトウェアとは、適当に住み分ける。
低速でも複雑な論理を処理するときは、ソフトウェアの方がいい。ハードウェアに比べたら修正が楽だからねー。
ソフトウェアじゃ不可能なほど高速に論理を処理する部分は、ハードウェアの論理回路。論理は単純だけどソフトウェアでやるとエラい手間隙かかる処理もハードウェアの論理回路。
ま、低速と高速の境目とか、手間隙かかるかどうかの境目は、時代とアプリケーションによって変化するけどね。
ちなみに、'1'と'0'の世界じゃ済まなくなる部分はハードウェアのアナログ回路。論理回路が現実世界とリンクする部分には、必ず(小さいかもしれないけど)アナログ回路がインタフェースする。
|
ガッコで最初に習うANDゲートとかFlipFlopとかは、論理回路の基本単位。レゴブロックの1つのピースみたいなモンだわ。
レゴブロック数個じゃ何にも作れないよーに、ANDゲートとかFlipFlopとかを数個持って来たって何にも作れない。
けど、レゴブロックを千個持ってくれば何でも作れちゃうよーに、ANDゲートとかFlipFlopとかを千個持ってくれば何でも作れちゃう。
まぁ、論理回路ってそーゆーモンですw
. |