今日は、カウンセリングから少し離れて
日ごろからなにかとお世話になっているコンピュータについて
私の知る範囲で書いてみたいと思います。
カウンセラーという仕事はおそらく
AI技術がどれほど進んでも、とってかわられるのは
他の職業よりも遅く、一番最後なんじゃないか
というあまり根拠のない安心感を持っている私です(笑)
AI技術の発達に伴い、様々な分野で利用が広がっている
コンピュータ、意外かもしれませんが
実は実用化されてからほとんど変わっておりません。
スーパーコンピューターも、パソコンも、スマホも、タブレットも、基本は一緒
ハードウエアの小型化や信号伝達の高速化、クロック周波数のアップなどの進歩に加え
並列動作とか、いろいろな技を使って、速く動くようにはなりましたが
一つ一つの命令をCPU(中央処理装置)で逐次実行して、結果をメインメモリに書き込む
という動作方式は・・・21世紀初頭まではずっと変わっておらず、現在でも主流だと思います。
この仕組みは、考案者の名を採って、ノイマン型アーキテクチャと呼ばれています。
近年
データフローマシン、量子コンピュータ、ニューロコンピュータ、DNAコンピュータなど
ノイマン型以外(非ノイマン型と言われます)も登場していますし、
命令の実行方法を含め
ノイマン型を超えるアーキテクチャなのかもしれませんが、
ここでは多数派であるノイマン型について書かせていただきます。
というのもノイマン型で育てられた世代なものですから(o_ _)o))
で、その命令というのはどこにあるの?
って気になりますよねえ
みなさんが、アプリアプリと呼んでいるあれが、命令の塊
アプリケーションプログラムの略ですね。
つまり、特定の用途向けにつくられた、一連の命令群を束ねた電子情報が
書き込まれたファイルです。
これをメインメモリに読み込んでおいて、一つずつ実行する。
というのがどのアプリにも共通の手順です。
最新のアプリだと、GUI(グラフィカル・ユーザー・インターフェイス)を駆使して
利用者の意図を随時読み取って対応した動きをする、専用コントローラだけでなく
クリック・ドラッグ・タップ・スワイプなどの感覚的な操作を読み取って動作を決める
いわゆるイベント駆動型が多いですよね、ゲームアプリなんて特にそうです。
これも、コンピューターの高速小型化と、多様なヒューマンインターフェイスが
開発されたから実現できたことです。
コンピューターの頭脳であるCPU(中央処理装置)での動作自体は、多くのコンピュータでは
ノイマン型アーキテクチャ「プログラム記憶式」もしくは「プログラム内蔵式」がそのまま使われています。
そして、実は
コンピュータの頭脳ともいえる演算装置ですが、実は
足し算しかできない
という驚愕の事実が!!
しかも論理演算(論理積とか論理和というあれ)の回路の組合せでできてるというね
ここはウィキを見ていただきましょう
コンピュータの扱う情報(命令群も含む)はすべて0と1という2値の組合せです。
だから論理値として扱うのが非常に便利、これを組み合わせれば複雑な演算も
0と1の処理で対応できる、つまり0と1しか使えない偉大なるお馬鹿さん
但し、四則演算はすべて加算だけでできるんです。
例:引き算 5-1は、5+(ー1)とすれば加算回路で計算できます。
掛け算 4×3は、4+4+4と加算の繰り返しに変換できます。
割り算は引き算の繰り返しですから、やはり加算の繰り返しに変換できます。
引く数を符号変換するなんて、計算に比べたら造作もないことですし、
内部の構造を簡単にすることで、回路が単純になり、
コストも抑えられ故障率も大幅に低下するなど名っともたくさんあるんです。
これって、とてもすごいことでしょ?
コンピュータを動かす命令も、大きな数値もぜんぶ、0と1だけで表現できる
1桁(ビット)では2値しか表現できませんが
4桁で16通り、8桁では256通り、16桁では65536通りと、1桁増えるごとに
表現できる情報量は倍になっていきます。
n桁あれば、2のn乗通り
一般的にコンピュータ内部では8ビットを1まとめにして「バイト」という単位で情報を取り扱います。
メモリの領域(メモリ空間)にも、1バイトごとに番地(アドレス)が割り振られていて、
一番先頭が0番地、以下順に1,2,3となります。
よく、32ビットマシンとか、64ビットマシンという呼び方をしますが
これは、メモリのアドレス管理を行う情報領域の桁数なんです。
8ビットで扱える数値は、0~255の範囲なので、メモリも256番地までしか管理できません
小型コンピュータ開発当初は、半導体も高価だったので、本当に限られた用途でしか使えなかったんです。
32ビットでは、2の32乗までのメモリ空間を管理できます。
2の10乗=1024≒1000=10の3乗なので
2の32乗=2の(2+30)乗=4×2の10乗×2の10乗×2の10乗≒4×10の9乗バイト
=4GB(ギガバイト)のメモリ空間を扱えます。
ということは・・・32ビットマシンでは、どんなにメモリを増やしても4GBまでしか活用できません。
最近のパソコンのアーキテクチャは64ビット対応なので、
最大2の64乗バイトのメモリ空間=16エクサバイト扱えます。
ということで、こういったコンピュータの基本動作を担当するソフトウエア(プログラム)が
オペレーティングシステム(略称OS)と言って、大昔はオペレータという専門職が担っていた
コンピュータのお守りを自動的にやってくれるプログラムが開発されたんです。
Windous やMacOS、UNIXやLINUXなど、様々なオペレーティングシステムが出回っています。
あ、スマホでは、iOSや、Androidもありますね。
コンピュータのハードウエアによって最適なOSを各社が開発しています。
アップルだけは、ハードウエアとOSの双方を自社で作っていますが、WindowsやAndroidは、
複数のメーカーのハードウエアに搭載可能だったりします。
今日はこの辺りまでにしておきましょう。
カウンセリングとはまったく異質な内容だと思われるかもしれませんが、
実は人間の日常生活での情報の伝達の仕組みを単純化してみると
コンピュータのアーキテクチャと符合する部分があったりします。
次回は類似点と異なる点について、気が向いたら書いてみます。