おそろしく単純な動作 (後述) を大量に組み合わせて、複雑な処理をおこなう。
すべてのコンピュータは 以下の4つの装置から成り立っている。
(情報処理技術者試験ではこれに「制御装置」を加えたものが 「コンピュータの5大装置」と呼ばれているが、ここでは制御装置は 演算装置に含まれるものと考えている)
スマートフォンも炊飯器もエレベータも、やっていることは一緒。
コンピュータにしてみれば、入力装置から来た情報を
あれこれ処理して、出力装置に渡しているにすぎない。
装置の間で渡されるすべての情報は、 2種類の異なる状態の組み合わせで表される。
数字、文字、画像、音声などをコンピュータで扱うためには、 これらの情報をすべて 0 と 1 だけで表す必要がある。
1
, 11
, 111
, 1111
, 11111
, ...
0
, 1
, 0
, 1
, 0
, 1
, 0
, ...
我々がふだん使っている数 (10進数) は 「12345」を表すのに
1万文字を書いたりする必要はない。
「桁上がり」の考え方。
実際には、コンピュータの各装置は次のように接続されている。
1秒間あたりのクロックの拍数 (Hz) を、動作周波数という。
記憶装置には半導体による主記憶装置 (メモリ) と
磁気を使った二次記憶装置 (ハードディスクなど) がある。
メモリはハードディスクの約100,000倍速い。
たとえば、100ビットのメモリは 100個の 0 または 1 を記憶することができる。
扱えるバスのビット数が異なる。 → 64ビット版のほうが多くのメモリを扱え、一度に多くのデータを処理できる。
演算装置の役割… 入力装置から来た 0/1 をうまいこと処理して、出力装置に渡すこと。
これは何をする回路か? X と Y の空欄を埋めよ。
A | B | X | Y | |
---|---|---|---|---|
0 | 0 | |||
0 | 1 | |||
1 | 0 | |||
1 | 1 |
プログラムする … 配線を変更して、 コンピュータに別の処理をさせること。
プログラムをいくつかの命令語の列によって表現し、 それを実行することにより処理する。 (命令語の列は、記憶装置に入れておく。)
制御装置… 演算装置の一部で、命令語を実行する部分。
00401066: 57 push edi 00401067: 33 FF xor edi,edi 00401069: 85 DB test ebx,ebx 0040106B: 7E 26 jle 00401093 0040106D: 8B F5 mov esi,ebp 0040106F: 8B 6C 24 18 mov ebp,dword ptr [esp+18h] 00401073: 2B E8 sub ebp,eax 00401075: 8B 0C 2E mov ecx,dword ptr [esi+ebp] ...
効率は悪いが、プログラムを書き換えるのが簡単。
ハードウェアはますます一般化し、 ソフトウェアが重要な時代になっている。
現在のコンピュータは、1秒間に約1,000,000,000回の信号を処理できる。
これは、1回の処理に 0.000 000 001秒かかることを意味する。
キロ (K) | 1,000倍 |
メガ (M) | 1,000,000倍 |
ギガ (G) | 1,000,000,000倍 |
ミリ (m) | 1,000分の1 |
マイクロ (µ) | 1,000,000分の1 |
ナノ (n) | 1,000,000,000分の1 |