コンピュータのしくみを知ろう

箱の中では、5つの役割が分担して働いています。

装置をクリックすると、役割が表示されます

赤い矢印がデータの流れ、青い矢印が命令(指示)の流れです。

速いものは小さく、大きいものは遅い

クリックすると、それぞれの特徴が表示されます。上にいくほど速く、下にいくほど大容量です。

おおよその容量
–
読み書きの速さ
–
電源を切ると
–
1GBあたりの値段
–

体感してみましょう

CPUから見た「待ち時間」を、人の感覚に置きかえるとこうなります。

CPUは、この4段階をひたすら繰り返しています

性能を決めるもの

クロック周波数 1秒間に何回の周期で動くか。3GHzなら1秒に30億回。同じ設計なら高いほうが速い
コア数 計算する部分がいくつあるか。8コアなら8つの処理を同時に進められる
キャッシュ容量 CPU内部の高速な記憶。大きいほど主記憶を待つ回数が減る

クロック周波数だけでは性能は決まりません。設計世代が違えば、同じ周波数でも処理能力は大きく変わります。

主記憶に置いたプログラムを、CPUが1命令ずつ実行する様子を追いかけます

主記憶の行をクリックすると、その番地の命令や数値を書きかえられます。

主記憶装置番地ごとに命令とデータが入っている

番地内容意味

CPU(中央処理装置)

制御装置
命令レジスタ
―
プログラムカウンタ
0
演算装置
―
レジスタA
0
レジスタB
0
レジスタC
0

① 命令の取り出し
② 命令の解読
③ 実行
④ 結果の格納

実行の記録

    コンピュータの5大装置

    形は違っても、コンピュータの基本構造は共通しています。5つの装置が役割を分担しています。

    装置役割具体例
    入力装置外から情報を取り込むキーボード、マウス、カメラ、センサー
    出力装置結果を外に出すディスプレイ、スピーカー、プリンタ
    記憶装置データや命令を覚えておくメモリ、SSD、ハードディスク
    演算装置計算や判断を行うCPU の一部
    制御装置他の装置に指示を出すCPU の一部

    演算装置と制御装置をまとめて、中央処理装置(CPU)と呼びます。人間でいえば頭脳にあたる部分です。

    スマートフォンも、洗濯機の制御基板も、この構造を持っています。センサーが入力、モーターが出力、というだけの違いです。

    プログラム内蔵方式

    現在のコンピュータには、重要な特徴があります。プログラムもデータと同じように記憶装置に置かれるという点です。これをプログラム内蔵方式(ノイマン型)といいます。

    この方式のおかげで、同じ機械で別のプログラムを動かせます。ソフトを入れかえるだけで、文書作成にも、動画編集にも、ゲームにもなる。当たり前に思えますが、これは大きな発明でした。初期のコンピュータは、配線を組みかえないと別の計算ができなかったのです。

    記憶装置の階層

    記憶装置には、いくつもの種類があります。なぜ1種類で済ませないのでしょうか。

    理由は単純です。速い記憶は高価で小さく、安い記憶は遅いからです。すべてを最速の記憶にすると値段が非現実的になり、すべてを安い記憶にすると動作が遅くなりすぎます。

    そこで、速さと容量の異なる記憶を階層的に組み合わせます。

    種類容量の目安速さの目安電源を切ると
    レジスタ数百バイト最速消える
    キャッシュ数MB〜数十MB非常に速い消える
    主記憶(メモリ)8〜32GB速い消える
    SSD256GB〜2TBやや遅い残る
    ハードディスク1〜20TB遅い残る

    主記憶と補助記憶

    大きく2つに分けると、主記憶と補助記憶になります。

    主記憶(メインメモリ、RAM)は、いま使っているデータやプログラムを置く場所です。速い代わりに、電源を切ると内容が消えます。これを揮発性といいます。作業机の上にたとえられます。

    補助記憶(ストレージ)は、SSDやハードディスクのことです。遅い代わりに大容量で、電源を切っても内容が残ります。本棚にあたります。

    パソコンが固まったときに再起動すると作業中のデータが消えるのは、主記憶が揮発性だからです。「こまめに保存」とは、主記憶の内容を補助記憶に書き出すことを指しています。

    キャッシュ ― 速さの差を埋める工夫

    CPUの計算速度に対して、主記憶の読み書きは遅すぎます。CPUがデータを待つ間、何もできない時間が生まれてしまいます。

    そこで、CPUの近くに小さくて高速な記憶を置きます。これがキャッシュメモリです。よく使うデータをここに置いておけば、主記憶まで取りに行く回数が減ります。

    キャッシュにデータがあることをヒット、なければミスといいます。ヒット率が高いほど、全体の処理が速くなります。

    速さの差を実感する

    CPUから見た待ち時間を、人の感覚に置きかえてみます。CPUが1回計算する時間を1秒とすると、こうなります。

    キャッシュ:数秒 / 主記憶:約2分 / SSD:数日 / ハードディスク:数か月

    この差があるため、階層構造とキャッシュの工夫が欠かせません。プログラムを速くする技術の多くが、この待ち時間をいかに減らすかという話でもあります。

    CPUの動き

    CPUは、次の4段階を延々と繰り返しています。

    1. 命令を読み出す(フェッチ):主記憶から次の命令を取ってくる
    2. 命令を解読する(デコード):何をすべき命令かを判断する
    3. 実行する:計算や、データの移動を行う
    4. 結果を書き込む:結果を記憶装置に戻す

    この繰り返しを、1秒間に何十億回という速さで行っています。どんなに複雑なソフトも、この単純な繰り返しの積み重ねで動いています。

    性能を表す数値

    クロック周波数は、1秒間に何回の周期で動作するかを表します。3GHzなら1秒間に30億回です。ただし、周波数だけで性能は決まりません。1回の周期でどれだけの処理ができるかは、設計によって違うからです。

    コア数は、計算する部分がいくつあるかを示します。8コアなら、8つの処理を同時に進められます。ただし、プログラムが並行処理に対応していなければ、コアが増えても速くなりません。

    CPUシミュレータで命令を追う

    「CPUシミュレータ」のタブでは、主記憶に置いたプログラムを、CPUが1命令ずつ実行する様子を追いかけられます。実際のCPUはもっと複雑ですが、基本の動きは同じです。

    番地とプログラムカウンタ

    主記憶は、小さな箱がたくさん並んだものと考えられます。箱には0から順に番地(アドレス)が付いていて、命令もデータも、どれかの番地に入っています。プログラム内蔵方式では、プログラムとデータが同じ主記憶に置かれることを、ここで確かめられます。

    CPUの中には、次に実行する命令の番地を覚えておくプログラムカウンタがあります。命令を1つ取り出すたびに、プログラムカウンタは1つ増えます。だから、命令は基本的に番地の順に実行されます。

    取り出した命令は命令レジスタに入り、制御装置が解読します。計算に使う値は、CPUの中の小さな記憶であるレジスタ(このツールではA・B・C)に入れてから、演算装置で計算します。

    このツールの命令

    命令意味
    READ A,(10)10番地の値をレジスタAに読み込む
    WRITE (12),AレジスタAの値を12番地に書き込む
    ADD A,BA+Bを計算し、結果をAに入れる
    SUB A,BA−Bを計算し、結果をAに入れる
    JUMP 2次は2番地の命令へ進む(プログラムカウンタを2にする)
    JZ C,8レジスタCが0なら8番地へ進む。0でなければそのまま次の番地へ
    STOPプログラムを終える

    実際のCPUの命令は、0と1の並び(機械語)で表されています。このツールでは読みやすいように、英語の短い単語で表しています。このような書き方をアセンブリ言語といいます。命令の名前や書き方はCPUの種類によって異なり、教科書とも少し違う場合があります。

    足し算のプログラムを追う

    「足し算」では、10番地の3と11番地の2を足して、12番地に書き込みます。CPUは、0番地の READ A,(10) から順に、次のように動きます。

    1. READ A,(10):10番地の3をレジスタAに読み込む
    2. READ B,(11):11番地の2をレジスタBに読み込む
    3. ADD A,B:演算装置で3+2=5を計算し、Aに入れる
    4. WRITE (12),A:Aの5を12番地に書き込む
    5. STOP:終わる

    1つの命令ごとに「取り出し → 解読 → 実行 → 結果の格納」の4段階をくり返しています。「1段階すすむ」で、それぞれの段階でどの装置が動き、値がどこからどこへ移るのかを、矢印で確かめてください。

    くり返しは「番地を戻る」ことで作る

    「かけ算」では、3×4を「3を4回足す」ことで計算します。7番地の JUMP 2 でプログラムカウンタを2に戻すと、同じ命令が何度も実行されます。これがくり返しの正体です。2番地の JZ C,8 は、残りの回数(レジスタC)が0になったら、くり返しを抜けて8番地へ進むための命令です。

    プログラミングで書く「もし〜なら」や「〜を繰り返す」も、CPUの中では、このように条件によってプログラムカウンタを書きかえることで実現されています。

    入出力と周辺機器

    入力装置と出力装置は、コンピュータと外の世界をつなぐ窓口です。近年、その種類が急速に増えました。

    スマートフォンには、タッチパネル、カメラ、マイクに加えて、加速度センサー、ジャイロセンサー、GPS、明るさセンサーなど、多数の入力装置が入っています。画面の向きが自動で変わるのも、暗い場所で画面が暗くなるのも、こうしたセンサーの働きです。

    出力も画面や音だけではありません。振動、モーターの回転、LEDの点灯。IoT機器では、センサーで測ってモーターを動かすという流れが基本になります。エアコンや自動ドアも、この構造を持った小さなコンピュータです。

    ソフトウェアとの関係

    ハードウェアだけでは、コンピュータは何もできません。動かすためのソフトウェアが必要です。

    種類役割例
    基本ソフトウェア(OS)ハードウェアを管理し、アプリに使わせるWindows、macOS、Android、iOS
    応用ソフトウェア目的の作業を行うブラウザ、表計算、ゲーム

    OSがあるおかげで、アプリを作る人は装置の細かい違いを気にせずに済みます。メモリの割り当て、ファイルの管理、複数のアプリの切り替え。こうした面倒な仕事をOSが引き受けているのです。

    使い方

    © 2026 情報ラボ ホーム カリキュラム対応表 画像のデジタル化 音のデジタル化 ラスタとベクタ 画像のビット演算 色の表し方 2進数・16進数 文字コード データはすべて0と1 パリティマジック コンピュータのしくみ 論理回路 アルゴリズム ネットワークのしくみ 電子メールのしくみ 情報システムとデータの流れ シミュレーション データの分析 機械学習 回帰と予測 クラスタリング 統計的推測 パスワードの強さ 暗号のしくみ あやしいメールを見分ける データ量の計算 データ圧縮 JPEGのくり返し保存 運営者情報・お問い合わせ プライバシーポリシー 更新履歴