iimon TECH BLOG

iimonエンジニアが得られた経験や知識を共有して世の中をイイモンにしていくためのブログです

コンピュータの構成要素とCPUの仕組みの基本

はじめに

この記事では、コンピュータの基本的な仕組みとCPUの動きについてまとめています⚡️⚡️
コンピュータが「入力を受け取り、処理し、記憶し、出力する」流れで動くことや、CPUがどのように命令を実行しているのか、さらに割込みによる効率的な処理の仕組みまで知ることができます🌟  

コンピュータとは

コンピュータとは、ソフトウェアプログラムの指示に従ってデータを処理する電子機器のことです。入力を受け取り、処理し、保存し、出力することで、さまざまなタスクを実行します。

主な種類

コンピュータの構成要素

構成要素 説明
入力装置 コンピュータにデータを入力する装置 キーボード、マウス、スキャナー
中央処理装置(CPU) 入力データを処理し、制御や演算を行う
記憶装置 データやプログラムを保存する メモリ、HDD、SSD
出力装置 処理結果を表示または出力する モニター、プリンター、スピーカー

ハードウェアとソフトウェア

  • ハードウェア
    触れることができる物理的な装置。例:CPU、メモリ、入力装置、出力装置

  • ソフトウェア
    コンピュータに「何を・いつ・どのように」行うかを指示する命令の集合。例:WindowsChromeVSCode

両者の関係

  1. ハードウェアが入力を受け取る
  2. ソフトウェアが入力をCPUが理解できる形式に変換
  3. CPUが処理し、結果を出力装置に渡す

CPU(中央処理装置)

CPU(Central Processing Unit)は「コンピュータの頭脳」と呼ばれ、命令の解釈と実行を担います。主な構成要素は以下の通りです。

構成要素

  • 制御ユニット(CU)
    命令を解釈し、処理の流れや入出力操作を制御する
  • 演算ユニット(ALU)
    算術演算や論理演算を行う
  • メモリユニット
    命令やデータを一時的に保持。レジスタやキャッシュを含む

主なレジスタ

レジスタとは、CPUに内蔵されている少量で高速な記憶装置です。命令の実行時に使用されます。

レジスタ 役割
命令レジスタ 主記憶から読み出した命令を格納
命令アドレスレジスタ 次に実行する命令のアドレスを保持
汎用レジスタ 演算やデータの一時的保管に使用
アキュムレータ 演算結果を格納

レジスタの操作については以下の記事で知ることができます!

tech.iimon.co.jp

CPUの命令実行サイクル

CPUは主記憶に格納された命令を順に繰り返し実行します。一般的には以下の5段階で実行されます。

ステージ 内容
① 命令フェッチ 主記憶から命令を命令レジスタへ読み出す
② 命令解読 命令をデコーダで解読
オペランドアドレス計算 処理対象データの格納アドレスを計算
オペランドフェッチ 対象データをレジスタに読み出す
⑤ 命令実行 ALUで演算を実行する

割込み

割込みとは、実行中の処理を一時中断し、緊急度の高い処理に切り替える仕組みです。これにより効率的なマルチタスク処理が可能になります。

  • 割込み発生時、CPUは現在の状態を保持する PSW(Program Status Word) を退避し、割込み処理後に元の処理へ復帰します。
  • 複数の割込みが同時に発生した場合は、優先順位に基づいて処理します(多重割込み)。

割込みの種類

内部割込み

種類 説明
プログラム割込み 0除算や桁あふれ、不正アクセス時に発生
SVC割込み 一般的にはプログラムから制御できない機能を
プログラムが利用したいときに発生

外部割込み

種類 説明
タイマ割込み 実行時間が設定値を超えた場合に発生
コンソール割込み 利用者の操作によって発生
入出力割込み キーボードや外部機器からの入力で発生
機械チェック割込み ハードウェアの故障時に発生(最優先)

割込み処理の基本流れ

  1. 割込みの発生
    外部デバイス(外部割込み)や命令実行中のエラー(内部割り込み)によってトリガーされる。

  2. CPU が現在の状態を保存
    レジスタPSWをスタックや専用領域に退避する。

  3. 割込みハンドラの呼び出し
    割込みベクタを参照し、適切な割込み処理ルーチンへ制御を移す。

  4. 割込み処理の実行
    バイス処理、エラーハンドリングなどを行う。

  5. 状態の復帰
    保存していたレジスタPSWを復元し、割込み前のプログラム実行状態に戻す。

  6. 通常処理へ復帰
    割込み前に中断されていた命令の実行を再開する。

[ 補足 ]

  • 割込みベクタ
    どの割込みが発生したかを識別し、その割込み対応する ISR のアドレスを保持する情報
  • 割込みハンドラ
    発生した割込みに対応する処理を行う関数

最後に

まとめ

  • コンピュータは 入力 → 処理 → 記憶 → 出力 で動く
  • CPUは 命令を解釈・実行 する頭脳
  • 割込みは 緊急時に処理を優先的に切り替える仕組み

ここまで読んでくださり、ありがとうございます!🌱✨

弊社ではエンジニアを募集しております!少しでもご興味がありましたら、カジュアル面談でお話ししましょう!

iimon採用サイト / Wantedly / Green

参考