「高等学校情報/情報の科学/論理回路と半導体」の版間の差分

削除された内容 追加された内容
→‎NAND: しかも、せっかく、「NANDは、フラッシュメモリの略称のことだ」と誤解している人に、ただしい意味を教えてあげても、感謝されるどころか、「新聞のビジネス報道も知らんのか?
範囲外: デジタル信号の実現手段は多値論理
511 行
しかも、せっかく、「NANDは、フラッシュメモリの略称のことだ」と誤解している人に、ただしい意味を教えてあげても、感謝されるどころか、「新聞のビジネス報道も知らんのか?」などと私達の側がバカにされることもあり、場合によっては、私達の側こそがマチガイ呼ばわりされたりする事があるので、とにかく、このような知ったかぶりの人たちを相手にしないほうが良い。
}}
 
 
== ※ 範囲外: デジタル信号の実現手段は多値論理 ==
[[ファイル:SOS.svg|thumb|「SOS」のモールス符号。よく2値信号の例として説明されるが、考えようには三値信号(「長音」、「短音」、「音なし」の3通り)でもある。]]
 
コンピュータでは「0」と「1」の2とおりの数の組み合わせで計算する。しかし、電子部品では、そうではない。
 
たとえばCD(コンパクトディスク)を考えてみよう。CDのモーターの回転速度が、ある瞬間、ほんの0.01%だけ遅くなったとしよう。
 
もし、「110001111」みたいに2値信号だけで情報を送信している場合、もし「000」のときにモーターなどの回転が遅くなったとして、「0」状態の滞在時間が長くなってしまい「110000001111」みたいになってしまったら、どうやって訂正するのだろうか?
 
こういう場合の対策として、信号を2通りではなく、3通り以上で送信するという方法が有効だろう。(実際のCDやDVDが下記の仕組みかどうかは、残念ながら知らない。)
 
つまり、例えば
:「信号なし」 → 「A」
:信号値の低い状態(「0」的)に対応する信号 → B
:信号値の高い状態(「1」的)に対応する信号 → C
とする。
 
すると、さきほどの「110001111」は
:まず「1A1A0A0A0A1A1A1A1A」と途中変換されて、
:さらに「0」→Bとして「1」→Cと変換すれば、
:「CACABABABACACACACA」と変換される。
人間が読みやすくすため、「CA CA BA BA BA CA CA CA CA」と書くことにしよう。
 
 
すると、もし一時的にモーターなどの回転が遅くなったりしても、
「CA CA BA BA BA '''AAAAA''' CA CA CA CA」と書くことにしよう。
 
のように、意味をもたない信号が入ったりするだけなので、これを「1」や「0」と区別できる。
 
あるいは、
もし、「CA CA BA BA BBBBA CA CA CA CA」のようになっても、「BBBBA」を「BA」に訂正すればいい。
 
もし、「BかCのひとつの信号の代わりには必ずAが来る」と決めておけば、さきほどの例のように「BBBB」と続く場合は速度低下が起きていると検出できる。
 
 
このように、3通り以上の値を使って信号を送信するという方法が、速度変化による誤検出を防ぐ方法のひとつとして有効である。
 
 
例としてCDをあげたが、おそらく半導体なども似たような仕組みだろう。CPUの周波数だって、ほんの0.00001%くらい、温度や使用年数などによって微妙にズレる可能性があるだろう。
 
 
なお、この例であげた信号「A」のように、信号のひくい状態と区別して、「信号そのもののない状態」を表現する値のことを工学用語で「ヌル値」(ヌルち、null value)などという。
 
 
われわれが「0」「1」の2値論理だと思ってる信号は、正確には3値以上の信号から、ヌル値の連続などの無意味な部分を除いて、意味をもつ残りの信号を2値の信号に分類したものであろう。