|
|
|
|
|
|
|
|
|
目次
CPU章トップ|誰にでもわかるCPUの仕組み
第1節:CPUとは何か
第2節:命令の実行サイクル
第3節:レジスタの役割
第4節:メモリとCPUの関係
第5節:アドレス指定とメモリマップ
第6節:整数演算とフラグ
第7節:浮動小数点演算
浮動小数点演算と IEEE754
整数演算では表現できない
小数や非常に大きな数を扱うために、
CPUは浮動小数点演算を行います。
この表現方法は、
国際規格 IEEE754 として
標準化されています。
なぜ浮動小数点が必要か
整数では、
- 0.1 や 0.01 のような小数
- 非常に大きな値や非常に小さな値
を正確に表現できません。
浮動小数点は、
指数表現を用いることで、
広い範囲の数値を扱えるようにしています。
浮動小数点の基本構造
IEEE754 では、
数値を次の3要素で表します。
| 符号 | 指数 | 仮数 |
- 符号:正か負か
- 指数:数のスケール
- 仮数:有効数字
精度の種類
| 種類 | ビット数 | 用途例 |
|---|---|---|
| 半精度 | 16 bit | GPU・機械学習 |
| 単精度 | 32 bit | 一般的な計算 |
| 倍精度 | 64 bit | 科学技術計算 |
丸め誤差という問題
浮動小数点では、
すべての実数を正確に表せるわけではありません。
そのため、
0.1 + 0.2 ≠ 0.3
のような結果が
プログラム上で発生します。
これはバグではなく、
浮動小数点表現の性質です。
FPU(浮動小数点演算装置)
浮動小数点演算は、
ALUとは別の
FPU(Floating Point Unit)
で処理されます。
現代のCPUでは、
FPUはCPU内部に統合され、
高速に演算を行います。
CPUとGPUの役割分担
浮動小数点演算は、
CPUだけでなくGPUでも
大量に実行されます。
特に、
- 3Dグラフィックス
- 画像処理
- 機械学習
では、
GPUの並列演算能力が
活かされます。
第7節のまとめ
- 浮動小数点は実数を扱うための表現方法
- IEEE754 が世界共通規格
- 精度と誤差の理解が重要
- CPUとGPUで役割分担される