質問: 「コンピュータはなぜ動くのか 知っておきたいハードウエア&ソフトウエアの基礎知識」書籍内の「第2章:コンピュータを作ってみよう。」内の「メモリーとI/Oを区別して入出力する仕組みを配線」(P42)のところで >メモリーやI/Oに対してCPUが入力と出力のどちらを行うのかも区別しなくてはなり>ません。そのために使われるのが、Z80 CPUの(Read=入力を意味し、入力動作で>0になる)ピンと(Write=出力を意味し、出力動作で0になる)ピンです。 ↑このように記載されていますが、この >「メモリーやI/Oに対してCPUが入力と出力のどちらを行うのかも区別しなくてはなりません。」 ↑なぜ「入力」・「出力」の区別が必要なんでしょうか? これはつまり、電気信号が衝突してしまう(いわばショート)を防ぐために区別する必要があるのでしょうか? わかりやすく教えてください。よろしくお願いします。
回答: ソフトのほうの用語で説明したほうが簡単です。 IPOという記述方法があります。これは I インプット 入力は何かを書く P プロセス=処理 プログラムが何をするかを書く O アウトプット 出力は何かを書く というテンプレートです。これを書くと、できたプログラム部品を動かすための条件が全部書かれていることになります。 ポイントは、大事なのはPであって、そこでどういう処理をするか、なんですけど、そのために必要な情報は全部Iにまとまっていて、処理した結果をセットするところがOにまとまっていることです。 こうすることでそこが部品になるのです。処理ユニットです。 まとめないと、Pですることを明確に記載できません。要するに何を読ませ何を書かせるか、は違う入り口出口でないと整理できないからです。 この思想を電気信号に対して適用してみてください。 仮に不具合がおきたとき、入力信号にトラブルがあるのか出力がおかしいのかが回路として明快であれば、交換すべきケーブルなんかはすぐに判断がつきます。 信号が衝突とかそういう話はこの話とは違うことです。それはトラフィックの話です。