C 言語 | コンピュータシステム開発 | ハードウェア構成

標準的なコンピューターのハードウェア構成と、その関係について説明する。

コンピューターの構造

ほかのプログラミング言語の経験やコンピューターを組み立てた経験があり、ハードウェアを理解している場合は、開発環境とコンパイラーの記事まで読み飛ばしてもよい。

C 言語は高級言語である一方、低級言語に近い言語でもある。そのため、C 言語を使いこなすにはコンピューターに関する知識が必要である。ここでは、コンピューターシステムの基本を説明する。

コンピューターはデータを入力し、適切な方法で計算して結果を出力する道具である。この処理に必要な最小限の装置は、入力装置、出力装置、演算装置、制御装置、記憶装置の 5 つである。

表 1. コンピューターの 5 大要素

装置 説明
入力装置 コンピューターにデータを送る装置
出力装置 計算結果を出力する装置
演算装置 プログラムに従ってデータを計算する装置
制御装置 ほかの装置の動作を制御する装置
記憶装置 データを保存する装置

図 1. コンピューターの 5 大要素と関係

コンピューターの 5 大要素と関係

入力装置には、キーボード、マウスやペン、タッチスクリーンなどのポインティングデバイス、スキャナー、OMR、タイマーなどがある。代表的な出力装置はディスプレイだが、プリンターやプロッターなどもある。

演算装置と制御装置を合わせたものを中央処理装置、つまり CPU と呼ぶ。CPU は入出力を管理し、コンピューター全体を制御する。

記憶装置は、データや計算結果を保存する。CPU と直接接続された重要な記憶装置を主記憶装置と呼ぶ。プログラムは主記憶装置にデータや計算結果を保存する。ハードディスクや ROM など、ほかの記憶装置は補助記憶装置と呼ぶ。主記憶装置は電源を切るとデータが消えるが、高速にアクセスできる。補助記憶装置は電源を切ってもデータを保持できるが、アクセス速度は遅い。

記憶装置にはバイナリーデータが保存される。2 進数の 1 桁をビットと呼ぶが、CPU は一般により大きな単位で処理する。最小の処理単位をバイトと呼び、通常は 1 バイトを 8 ビットとして扱う。

厳密には、1 バイトが常に 8 ビットとは限らない。バイトのサイズはコンピューターアーキテクチャによって異なる。8 ビットを明確に示す単位として、ネットワーク分野ではオクテットを使う。この本では原則として 1 バイトを 8 ビットとして扱う。

記憶装置では、各バイトにアドレスが割り当てられる。この数値をメモリーアドレスと呼ぶ。プログラムはメモリーアドレスを使って情報にアクセスする。この考え方は C 言語のポインターで重要になる。コンピューターが処理するすべてのデータには、その位置を識別するアドレスがあることを覚えておこう。