「高等学校工業 ハードウェア技術」の版間の差分

削除された内容 追加された内容
ページの新規作成。目次を作成。
 
内容をいろいろと記述。あとから整理する。
4 行
----
 
さて、コンピューターの、CPUのような制御装置を作るために最低限 必要なものを考えよう。
指導要領では次のように教育内容を定めてます。
 
章や節のページ名の命名での混乱を回避するため、各項目のページ名は、指導要領の表現に準拠した名称に統一したいと思います。
== 加算器が必要 ==
まず、計算機が必要である。
 
これは、半加算器や全加算器で作れる。
 
『[[高等学校情報 情報の科学/ANDとOR]]』で、半加算器の仕組みを説明した。(※ なお、リンク先の単元で、普通科範囲外の、ダイオードによるAND回路やOR回路の話題も記述しておいた。)
 
== 記憶回路が必要 ==
=== フリップフロップ ===
次に、制御のために、データを保存するのに必要なものを考えよう。パソコンでは、メモリ基板だけでなくCPUにも、データ保存のための領域がある。(メモリ基板やハードディスク)
 
CPUのための記憶の回路をつくるには、'''フリップフロップ'''という論理回路を使う。
 
* [[高等学校工業 ハードウェア技術/フリップフロップ]]
 
なお、CPUで制御用にデータを保存するためのデバイスのことを、パソコン用語で'''レジスタ'''という。
 
なお、パソコンで「次にどんな命令を実行するか?」(「たとえば次に○○の保存を実行する。その次に、△△のコピー作業を実行する。その次に、××を移動する。」という命令など)という作業も、記憶が必要である。
 
例えば、命令の種類に番号をつけて、
:かりに、データの移動命令を「1」として、
:かりに、データの保存命令を「2」として、
:かりに、データのコピー命令を「3」とすれば、
 
「たとえば次に○○の保存を実行する。その次に、△△のコピー作業を実行する。その次に、××を移動する。」という命令は、
:まず、「命令2を実行しろ。」「次に命令3を実行しろ。」「その次に命令1を実行しろ。」という命令に置き換えられる。
 
もっと単純に、「2,3,1」という数値の配列を、あるレジスタに保存しておけば済む。
 
このように、命令を保存するためのレジスタのことを'''命令レジスタ'''という。
 
つまり、我々は、レジスタの作り方の原理を理解した事になる。
 
なお、先ほどは「データの移動命令を「1」として」などと簡単に言ったが、実際には、「どこにあるデータを、どこに移動するか?」という情報が必要である。そのため、「どこのデータを扱うか?」という処理が必要である。
 
この、「どこのデータを扱うか?」というデータも、レジスタに記憶しとけばいい。
 
この「どこのデータを扱うか」というデータのことを、アドレスという。
 
いっぽう、「移動する」「命令する」「コピーする」などのような、アドレスのない、単なる命令の種類のことを、「命令コード」または「命令部」という。
 
つまり、命令レジスタでは、命令部とアドレスの2つを記憶する必要がある。
 
 
なお、「このパソコンのハードディスクにあるデータを扱え」とか「このパソコンのメモリ基板にあるデータを扱え」というデータも、アドレスの情報である。
 
つまり、CPUから見れば、ハードディスクもメモリ基板も、単なる、アドレスの情報である。
 
 
で、レジスタは要するに、フリップフロップである。
 
で、もし読者のあなたが、レジスタさえ理解すれば、命令レジスタもいろいろと分かる事になるから、CPUの命令処理の仕組みも、なんとなく分かるだろう。
 
== マルチバイブレータ ==
フリップフロップの教科書などを見ると、前提としてクロック信号が存在しているのだが、そもそもクロック信号は、どうやってつくるのだろうか?
 
実は、マルチバイブレーターという電子回路を使う。アナログ電子回路では、コンデンサとトランジスタなどを用いて、マルチバイブレーターを作れる。
 
しかしコンピューターでは、論理回路をもちいてマルチバイブレーターと同様の現象を再現したものを使う。(これもまた、「マルチバイブレーター」という。)
 
 
== カウンタが必要 ==
記憶回路とタイムチャート
 
 
フリップフロップを書いて、メモリと関連づける
 
カウンタを書く。回数の記憶をメモリと関連づける。