おそろしく単純な動作 (後述) を大量に組み合わせて、複雑な処理をおこなう。
すべてのコンピュータは 以下の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 |