- ベストアンサー
デジタル回路の入出力について
デジタル回路のことについて全く素人(回路図を書いたことがないレベル)なのですが、長年、疑問に思っていたことがあり、解決できないのでプロの方にお聞きしたいです。 電子回路はinputとoutputがあり、電気を流したり、流さなかったりして 1と0の区別をつけている?ので1本の線では1bitの情報が表せます。 組み合わせ回路は論理回路?なので理解はできますが、大量データの入力部と出力部の 動作原理がわりません。 例えばある機械にパソコンからRS232Cで回路に信号を送る時、キャラクタ1バイト(8bit)を送信している?のですが、8bitだけで回路に送っても意味は無く、長いコマンドが送られて初めて動作し、結果を8bitでなく沢山のデータを送り返しているのですが、沢山のデータを処理する入力側と出力側の仕組みはどうなっているのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
この質問に答えるには いくつかの予備知識を必要とするのですが 彼方はそれを持っていないようです データーにもパラレルとシリーズの種類があるということを 学んで欲しいとおもいます
その他の回答 (2)
- joshua01
- ベストアンサー率66% (222/333)
こんにちは。 質問者さんの知識レベルがわからず、ご質問の趣旨も良く理解できていないのですが、仮に、コンピュータの勉強し始めの基礎知識として次のような情報はお役に立つでしょうか。 ポイントは、 ○ コンピュータのICチップ(CPUチップ)は、例えば、「コマンド」(命令)と「データ」それぞれに端子がある。 ○ 通常、「コマンド」は、同じ基板上にハンダ付けされたメモリから読み出すので、1本の電線ですべて受け取ることはない。一方、データは、1本の電線で送る(シリアル)ことも多いが、CPUチップでは、一旦、8本の線への入力に変換(シリアル-パラレル変換)している。 ある仮想的なチップの例です。 あるCPUチップを買ったところ、足が60本ほど出ていました。 ・16本は「I/Oデータバス」と言われて、外からのデータを出し入れします。8本は入力用、もう8本は出力用でした。 ・もう8本は「コマンドバス」と言われて命令コードを読み取ります。 命令は通常は人間がメモリに入れておくので、コマンドバスはメモリの出力(メモリ・データバス)につなぎます。ここの8本に印加されるON・OFFの組み合わせコードにより、CPUは、極めて多様な動作をします。 例えば、「00101100」なら「I/Oデータバスのデータを読んで内部メモリAに記憶する」、「00101101」なら「(同様に)内部メモリBに記憶する」、「11101100」なら「内部メモリAとBの足し算をしてCに記憶する」、「11101101」なら「(同じように)引き算をする」など。命令コードと動作との組み合わせはCPU内に回路として組み込まれており(膨大!だからCPUには何十万個というトランジスタが入っている)、製品ごとに分厚い取扱説明書として出版されています。 ・さらにもう8本は「アドレスバス」と言われて、命令の順序を決めます。そのため、メモリの入力(メモリ・アドレスバス)につなぎます。 例えば、犬の自動給餌装置を作ります。センサの付いた犬小屋は少々離れていて、センサはコンピュータ付き給餌機と電線でつながっているとして・・・ ・犬小屋に日が当たり(日当たりセンサ。入力1ON)、温度が高いとき(温度センサ。入力2ON)、ドアが開いたら(ドアセンサ。入力3ON)、餌のふたを開き(出力1ON)、水のふたも開く(出力2ON) ・犬小屋に日が当たり(入力1ON)、温度が低いとき(入力2OFF)、ドアが開いたら(入力3ON)、餌のふたを開き(出力1ON)、水のふたは閉じたまま(出力2OFF) CPUは次のように動作します。 ・CPUがアドレスバスに0(00000000)を出力して直後にコマンドバスを見たら、コマンドバスにメモリから(01000100)が出てきた。これは「I/Oデータバスの入力を内部メモリAに記憶する」という命令なので、その通りにデータバスの状況を記憶し、次にアドレスバスに1(00000001)を出力したら、メモリから(00011110)が出たので、「メモリAの第1ビット(日当たりセンサ)がONかどうか」を判定した。次にアドレスバスに2を出力したら、メモリから・・・ 気が遠くなりますね。コンピュータの基板上ではこのような単純な段階作業を膨大に積み重ねているのです。 しかし、ここでお気づきでしょうが、コンピュータでは、動作の中心である「コマンド」は同じプリント基板上に乗ったメモリ(信号はプリントパターンを通じてやりとりする)から読み出しており、RS232Cの回線はほとんど使いません。 このため、上記の例では、RS232Cを通じて送るのは「日当たりセンサ」「温度センサ」「ドアセンサ」の3つの情報ビットで、これを何度も繰り返し送っており、この3つの電線の状態を順序良く並べて(おまけに8ビットにするために5つの0を加えたり、タイミングを調整したりして)送受する機能は、「シフトレジスタ」(犬小屋では”パラレル“8本を1本の”シリアル“に、給餌機(CPU付き)側では”シリアル“を”パラレル“に、それぞれ変換)が行います。 なお、CPUにおいて、実際には、同じ「データバス」をコマンドとデータで共有しており、他の回路とタイミングを合わせたりすることもあって、制御関係のピンがたくさんあります。また、アドレスバスは数十本にも及びます(それだけたくさんの命令段階(ステップ)をプログラムできる) さてさて、ご質問の趣旨に合っていたでしょうか。 お役に立てば幸いです。
- outerlimit
- ベストアンサー率26% (993/3718)
質問のことは ディジタル回路云々よりも シリアル伝送、パラレル伝送の理解が必要です それから、ディジタル回路では、 外部もしくは内部のクロック信号で動作を決定します クロックが入力されたときの入力の状態で on/off を判定し また on/off状態を出力します クロックの数が 1秒間に9600個であればシリアル伝送では9600bpsです パラレル伝送では、そのときパラレルに伝送されているビット数倍になります クロックが400Mhzで32ビットパラレル伝送ならば、伝送データ量は 12800Mbps ,1600MB/s になります それから、信号の伝送には 2本の電線が必要です、パラレル伝送の場合、1本は共通使用が可能ですから、最低パラレルビット数+1本の電線が必要です 照明のスイッチは on もしは off を持続しますが 質問にあるような回路では時々刻々変化します 入力側と出力側が歩調を合わせて、送信/受信します(歩調が合わないとデータエラーになります) 昔勉強した書籍をもう一度紐解いてください 上記の事項が説明されているはずです