パソコンは5Vを主電圧にしている機種が多く、3.5〜4V以上の電圧がかかっている場合を通電状態として1(イチ)、1〜1.5V以下の低電圧の場合を無通電状態として0(ゼロ)としている。この1個の状態(データ)を最小単位のビットという。
ビットをいくつも連ねてデータやプログラムを構成している。
それ故、単に並べると 01001101 10100100 01111001 11010010 のようになり、我々人間は即座に内容を理解できないようなイチとゼロの数字の羅列となる(2進数表示) そこで、ビットを4個づつに区切り、下記の対応により0〜9とA〜Fを割り当てて表示する(16進数表示)
0000 → 0 0001 → 1 0010 → 2 0011 → 3 |
0100 → 4 0101 → 5 0110 → 6 0111 → 7 |
1000 → 8 1001 → 9 1010 → A 1011 → B |
1100 → C 1101 → D 1110 → E 1111 → F |
これにより上の0と1のみの数字の羅列は4D A4 79 D2となり多少見やすくなった。この4ビットの2倍の8ビットの区切りを1バイトという。ハードディスク容量として1GB(ギガバイト)とは100万(メガ)の更に千倍(ギガ)個の8倍にあたる01(ゼロ・イチ)のビットのデータを保存できる能力をいう。
パソコンは実際の処理をおこなうCPU(中央演算処理装置)とプログラムや処理するデータを保存するメモリ、更にマウスやキーボードにより指示を受け取ったり、処理結果を表示する画面へのデータを受け渡しする入出力部より構成される。
CPUに一定間隔で合図を送るオーケストラの指揮者の役割を受け持つ。この合図でCPUはひとつの処理を開始する。間隔が半分になれば処理する速度が2倍になる。CPUの性能表示でPentium 500MHzとはひとつの処理に合図を2回要するとすると1秒間に250万回処理できる能力があるという意味。この数字が高い方が処理が早く高性能のパソコンといえる。この数字は近年加速度的に高くなり、パソコンの性能が飛躍的に向上していることが下図から読みとれる。
CPUはパソコンの心臓部。プログラムやデータはここで解析・管理され、また処理される。処理部には演算をおこなうレジスタを有する(詳細は次項)
プログラムやデータを保存、記憶させておくところ。必要によりCPUへデータを渡し、また処理されたデータを格納したりする。即ち、メモを書き留める紙にあたる。その種類は大きく分けてROMとRAMの2種類ある。
@ ROM(Read Only Memory)
読み込み即ち記憶されているデータをCPUへ提供するだけのメモリで、電源を切ってもデータが失われることはない。それ故、主に基本プログラム(Operation System=OS)の保存用に用いられる。
A RAM(Random Access Memory)
読み込み、書き込み共に可能なメモリ。任意のデータを記憶して保存できる上ROMと同様保存されているデータを取り出すこともできる。但し、電源を切られるとデータは完全に失われてしまう。
更に、データを書いたり読んだりする場所を特定するため、各メモリに番号(アドレス=番地)が割り当てられている。
キーボードやマウスなどのパソコン外部からの指示・データを取り込んだり、外部の画面やプリンタに結果を表示・印刷したりする周辺機器との橋渡しをする入出力部で、ここに外部の機器が接続されている。
格納されているデータを特定するためにメモリに付けられている番号をアドレス(番地)という。CPUがメモリを読み込み、書き込みする際、このアドレスバスを通してアドレスを指定する。
CPUがメモリよりデータを読み込む際、このデータバスを通してCPUにデータが取り込まれる。また、CPUにあるデータはこのデータバスを通してデータがメモリに書き込まれる。
CPUにはすべてレジスタと呼ばれるものを多数もっている。ここでは理解しやすいように3つのレジスタに絞って記述します。
AXレジスタ、BXレジスタ:汎用レジスタとよばれ、ここで各種の演算がおこなわれる。
IPポインタ:命令ポインタとよばれ、命令を記述してあるメモリのアドレスを格納してある。実行が終わると次の命令のアドレスとなる。
CPUにより多少異なるものの、多くの命令の種類をもっている。ここではその中から次のMOVE命令とADD命令についての解説です。
@ MOVE命令
メモリのデータをレジスタへ移動、逆にレジスタのデータをメモリへ移動などの種類がある。なお、移動といっても元のデータは消去されないので実際はコピーになる。また、前者はCPUによる読み込み、後者は書き込みとなりデータをメモリへ保存する作業になる。
なおその他に、レジスタのデータを他のレジスタへの移動があるが、メモリからメモリの移動はない。その場合は一旦レジスタを経由しておこなうこととなる。
A ADD命令
レジスタに格納されているデータと他のデータを加算して結果を指定の場所に保存する。データのあるレジスタやメモリのアドレスを指定する。ADD命令の加算を始め、加減乗除の計算ができます。
ここでは、「メモリ・アドレス10にあるデータと11にあるデータをレジスタへ読み込んだ後、両者を加算してその結果を12のアドレスのメモリに保存する」処理をステップ毎に示します。更に、理解を助けるためアドレスは4ビットとしています。
処理ステップと命令コード(4.CPU(中央演算処理装置) (2)プログラムの命令と処理を参照)は下記のとおり。
ステップ1: アドレス10のメモリに保存してあるデータをレジスタAXに移動する。 → A110
ステップ2:
〃 11の 〃 レジスタBX 〃 → A111
ステップ3: レジスタAXとBXのデータを加算し、その結果をレジスタAXに格納する。
→ 01D8
ステップ4:
〃 AXのデータをアドレス12のメモリに移動する。 → A312
また、アドレス00からのメモリにプログラム・コードが、アドレス10にデータ「04」、アドレス11にデータ「05」が格納されているものとします。
命令ポインタ(IP)に00をセットして、実行させるとパソコンは下記の処理をおこなってくれます。
ここをクリックすると、CPUの処理のウィンドウが開きます。
ここでは2つの命令の種類を紹介しましたが、機種により異なりますが、実際には約100種類の命令があり、レジスタも数が多くアドレスの指定の仕方も複雑になっています。
また、メモリにセットされるデータとプログラムは全く同じもので命令ポインタ(IP)で指定されればプログラム、その他はデータになります。
パソコンには「16ビットパソコン」とか「32ビットパソコン」などと呼ばれることがありますが、これは何を意味するのでしょうか。
このビット数はCPUのレジスタのビット数を表示し、同時にデータバス(データの通る道)やアドレスバス(アドレスを指定する道)の幅を示します。
即ち、8ビットを1車線とすると16ビット、32ビットは各々2車線、4車線に相当しデータの転送量は飛躍的に増加します。また、CPUの処理の方も8ビットをA4版のプリンタとしますと16ビット32ビットは各々A3版、A2版のプリンタに例えられます。また、A2版の原稿を印刷するにはA2版プリンタでは一度で印刷できるのに対しA4版プリンタではA2版の原稿を4分割して4枚印刷した後つなぎ合わせる作業も必要となります。
そのため、ビット数の多いパソコンの能力は加速度的に性能が向上しています。
アドレスバスもパソコンのビット数に依存しているため、指定できるアドレス空間も大きく左右されます。
4、8、16、32ビット数の直接指定できるアドレス数は下記のとおり。
4ビット=24 =16
8ビット=28 =256
16ビット=216 =65,536 → 65KB
32ビット=232 =4,294,967,296
→ 4,294MB → 4GB余
16ビットパソコンでは65KBしかないので、指定の仕方を工夫をして約1MBに拡張している他、一部のアドレスを入れ替えたりして更に多くのメモリのアドレスを指定できるようにしています。
32ビットになると一気に4GBになりますから、現在のパソコンでは十分すぎるくらいのメモリ空間を確保できることがわかります。しかし、この部分を変更すると今までのソフトは全て稼働できなくなることから、Windows95/98は互換性を高めるために基本ソフトは32ビット版として16ビット版アプリにも対応できるようにしています。なお、因みにWindows2000は32ビット版のみの基本ソフトです。