CPU の変更点


#author("2022-08-18T10:46:58+09:00","default:k1rou","k1rou")
#author("2023-06-19T09:20:40+09:00","default:k1rou","k1rou")
*CPU とは [#pc5e6457]
-Central Processing Unit
-中央処理装置

*CPU の構成要素 [#y0f19924]
-ALU
--Arithmetic Logic Unit
--算術論理演算装置

-PC
--Program Counter
--プログラムカウンタ
--命令アドレスレジスタ

-GR
--General purpose Register
--汎用レジスタ

-FR
--Flag Register
--フラグレジスタ

-IR
--Instruction Register
--命令レジスタ

-ID
--Instruction Decorder
--デコーダ

-MAR
--Memory Address Register
--メモリアドレスレジスタ

-MDR
--Memory Data Register
--メモリデータレジスタ

*命令フェッチ [#n82e154e]
-メモリ上の命令を取り出すこと

*オペランドフェッチ [#nbbfd63a]
-メモリ上のデータを取り出すこと

**エンディアン [#me71be4b]
-データの並び順

-データをメモリ上に並べる方式
--ビッグエンディアン
---上位バイトから順番で並べる
--リトルエンディアン
---下位バイトから順番で並べる

*CPUのアーキテクチャ [#o4f71fea]
**命令を実行する方式 [#e07ed5a2]
-マイクロプログラム方式
-ワイヤードロジック方式

**命令セット(命令の集まり) [#z5584bb7]
-RISC
-CISC

*CPU の性能評価 [#d26455b9]
-クロック周波数
--1秒間に発生するクロック数

-クロックサイクル
--1クロックあたりの時間
--1/クロック周波数

-CPI
--Cycles Per Instruction
--1命令の実行に必要なクロック数

**CPU の性能評価指標 [#k3bf2fae]
-MIPS
--1秒間に実行できる命令数の平均値

-FLOPS
--1秒間に実行できる浮動小数点数演算の回数

*CPU の高速化技術 [#y5309fef]
**パイプライン [#o60c4f04]
-命令パイプライン
--命令を並列で実行する手法
--1つの命令をステージと呼ばれる単位に分割して処理する

-スーパパイプライン
--命令パイプラインのステージを細分化して並列で実行できる命令数を増やす手法

-スーパスカラ
--プロセッサ内の複数の実行ユニットで命令を実行する手法
--各実行ユニットは命令パイプラインで実行する(命令パイプラインの多重化)

-VLIW
--Very Long Instruction Word
--同時に実行可能な複数の命令を纏めて1つの長形式命令(VLIW)を作成する
--VLIWを複数の演算ユニットで同時に実行する方式

**並列処理 [#je4c3afe]
-複数のプロセッサを強調して動作させる手法

-分類(Flynnの分類)
--SISD (Single Instruction stream / Single Data Stream)
--SIMD (Single Instruction stream / Multiple Data Stream) ※並列処理に対応
--MISD (Multiple Instruction stream / Single Data Stream)
--MIMD (Multiple Instruction stream / Multiple Data Stream) ※並列処理に対応

**マルチプロセッサ [#ve9ec8ff]
-複数のプロセッサを並列で動作させる手法

-分類(結合方式)
--蜜結合マルチプロセッサ
---複数のCPUが主記憶装置を共有する(一つのOSで制御する)
--疎結合マルチプロセッサ
---CPUが専用の主記憶装置を持つ(CPUごとにOSを持ち制御する)

-アムダールの法則(Amdahl)
--並列処理による高速化率の予想に使われる計算
--並列化が可能な部分の割合を元に高速化率を求める
--並列化できない部分がある場合、いくらプロセッサ数を増やしても速度向上比は一定値で頭打ちになる

*関連用語 [#hf0b0ffd]
-[[コンテキストスイッチ]]
-[[ハードウェア]]
-[[割り込み]]
-[[メモリ]]