[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bfree-prj 97] Re: B−FreeOS入門書(第2回)



僕は、自由な状態から、制約がどんどん入っていって、形が決まっていくという
のが、好きなんですが、







現在の世の中で、回路の電気の on/off (switch)ほど素早く制御&変更できる対
象(device)はない。

一つの回路の on/off では、2種類の状態の変化が表現できる。こいつを、数字
の 1/0 に対応させることを考える。

で、これをいっぱい並べると、二種類の1/0 がいっぱい並んだことになる。数字
がいっぱい並んだので、一つの数と見なすことにする。

でも、この数字は僕たちが一般的に使っている、0から9まで使う数と違って、
0と1しかない。
でも、0/1を並べた数は、少なくとも、順番付けできる。たとえば、1+1 = 10
っていう規則で、筆算をやるように、1, 1+1 = 10, 1+1+1 = 10+1 = 11,
1+1+1+1 = 10 + 10 = 100 みたいに。
こいつを、1,2,3,4,...9 に対応させると、どんな数でも、0/1 switch を並べる
と表現できる。

そんな、switch の並びを computer の世界では、momory cell って呼んでい
て、そいつをいっぱい集めると、いっぱい数字を書き込める集合体、memory (日
本名:記憶装置)ができあがる。


CPU と呼ばれる回路(実際は沢山の回路の集合体)は、究極的には、この
memory (単に数の集まり)との数のやりとりをしているだけ。
ただ、computer の中で、中心的 (Central) な立場をとる部品 (Processing
Unit) なので、CPU と呼ばれる。





そこで、CPU は、実際には何をやっているかというと、次の動作を繰り返してい
るだけである。

1.cpu が memory に、数を一つ頼む。memory は、cpu に、数を一つあげる。
2.cpu は、それを、次に動作させる回路番号と考える。たとえば、足し算回
路。
  (注:CPUが細かい機能回路の集合だということを思い出して)
3.cpu は、また memory に数を頼む。memory は、cpu に、必要なだけあげ
る。
4.cpu は、回路番号で指定された回路を、あとからもらった数たちで動作させ
る。
5.動作した結果、もしかしたら、CPU は memory に数をあげる。
  memory は、その数を後々 CPU から頼まれる時のために、記録する。

6.1へ戻って、繰り返す。(また、回路番号を memory に取りに行く)






さて、ここで、memory が、単に回路の switch の集合(cell) のさらに集合だ
ったことを、思い出そう。
5で、cpu が、memory に数の保存を頼むと、いくつかの回路が on/off され
る。
もし、その回路が、ずーっと、外までつながって、video の switch や、
CD-player の switch に、つながっていると、どうなるか?

cpu が、memory に数字の保存を頼むと、CD が演奏されたり、video が録画され
たり。

TVのリモコンのボタン達だって switch の集まりだから、一つの memory cell
を構成していると考えられるから、1で cpu がこの数をもらって、CPU の内部
回路で、転送パターンに加工して、memory に戻すと、戻されたところの switch
は、赤外線送信装置に直結しているとすると、そこから、赤外線が TV だのなん
だのに送信されて TV の channel が、かわると。


そう言ったことで、CPU を入れると、入力回路と出力回路(ともに memory cell
達)の間に、複雑な対応関係を築け、その、CPU を(リモコンの switch と転送
パターンの対応だけではなく)「どんな関係にも対応」させた物が、現在の汎用
コンピュータ(個人用には PC)という事になります。また、最初のところで、
回路の on/off はもっとも高速に制御できる、と書いたとおり、最近の
computer の高速化にはめざましい物があります。







(以上)

と、よこわり、しましたが、別に、無視しても良いです。
(この message を加工、発展させる気は、全くないです)
この話題には、基本的に、無関係でいますので。
ただ、参考までに、という話です。

-Aki.



ps.
先週は結構、中間考査で苦しんで、やっと一段落したと、昨日、すこし、趣味の
programming しました。
何をやったかというと、まえに、実身仮身モデルを、95 の vfat の上で作るの
は、大変かという話があったのですが(>覚えてます? BTRON by console
[tron-misc:00335] >飯島さん :)、ほんのちょっとだけ試してみました。

一日では、終わらなかったようです。(暴)

やったのは、勝手に内部の構造(record の vfat file への map とか)をきめ
て、console app をつくって、こいつは、知らない command だと、command.com
に渡すだけの app ですが、それだけです。

いやあ、久しぶりに、自分で C++ つかったら、はまった、はまった。
ios::skipspace つけなくて、2個めのinteger が fstream からよめなくて、一
時間悩むとか。<馬鹿すぎ。
最近、授業で、MFC つかってるけど、あれは、C++ を使ってることには、ならな
いかんなぁ。あんなの。

まあ、「週末プログラマ」ですので、また来週、すこし、続きをやってみます
が、、、、。
公開可能性、5%だな。(だめすぎ)










Masayuki Okada wrote:
> 
> こんにちは、まさゆきです。
> 
> >  飯島です。
> >    : (省略)
> > ということをなんとなくわかっていたから、それなりに考えられたので
> > わかってない人にはわからないかなぁ?と思ってしまいました。
> 
> ご指摘ありがとうございます。でもこういう風に具体的な指摘はうれしいです。
> というわけで、少し直してみました。
> 
> ここから
> ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----
>  ●CPUとリモコンの関係
>  普段みなさんは「0」〜「9」の数字を使う10進数を使っています。
>  ところがパソコンでは「0」と「1」だけの数字を使う2進数を使っています。
>  この「0」と「1」でスイッチのON/OFFのような2つの状態を表すことができます。
>  先ほどCPUはメモリにデータを書く事ができると言いましたね。
>  つまり、CPUはメモリにON/OFFの状態を書き込めるわけです。
>  ではここで、リモコンのボタンを見てみましょう。
>  こちらは押せばON、離せばOFFのようになっています。
>  CPUとメモリは非常に細かい電線でつながれています。
>  では、メモリにつながっている線を外して、リモコンのボタンにつなげたとすると、ど
>  うなるでしょうか?
> ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----
> ここまで
> 
> --
> 
> まさゆき
>   HomePage : http://www02.u-page.so-net.ne.jp/fa2/masayuki/
>   E-mail   : masayuki@fa2.so-net.ne.jp
>   NIFTY    : HBB02234