#プロセッサ
1.プロセッサとは?
コンピュータの内部で計算などの命令を実行するためのハードウェア。
コンピュータの中心であるCPUや、画像処理などに用いられるGPUがある。
評価指標として、1秒に何百万個の命令が実行できるかを示す**MIPS(Million Instructions Per Second)**や、1秒に浮動小数点計算が何回できるかを示すFLOPS(Floating-point Operations Per Second)がある。
2.命令の実行手順
① 命令の取り出し
記憶装置から実行する命令を1行取り出す。
② 命令の解読
制御装置で命令を解読して、プログラムの内容を理解する。
③ データの取り出し
記憶装置から、解読したプログラムの実行に使うデータ(変数の値など)を演算装置に取り出す。
④ 命令の実行
演算装置で命令を実行する。
⑤ 結果の格納
演算結果を記憶装置に格納する。
3秒で作った語呂合わせ 「鳥飼で実家」
3.高速化技術
###3-1. パイプライン
2の各ステージを一つずつずらして、同時に複数の命令を実行させる方法。
パイプラインハザードが起こると、処理を中断しなければならない。
パイプラインハザードには三つの種類がある。
①制御ハザード 分岐処理で処理の順番が変わることによって生じる。
②データハザード 複数の処理で同じデータを扱うことにより生じる。
③構造ハザード 同じハードウェアを同時に使用することにより生じる。
3-2. スーパスカラ
パイプラインのステージを複数同時に実行させる。つまり複数の処理回路を用意するということ。
3-3. スーパパイプライン
パイプラインの5つのステージをさらに細分化(20とかに)して、1ステージごとに実行する。
3-4. VLIW(Very Long Instruction Word)
128ビットと長い命令語を用いて、一つの命令語の中に依存関係のない複数の演算をまとめることにより、一度の実行で効率的に演算を行うことができる。
3-5. アウトオブオーダー
演算の順番に関係なく、依存関係のない演算をパイプラインで流すことにより、パイプラインハザードなどを回避し無駄な待ち時間をなくす手法。
##4.マルチプロセッサ
複数のプロセッサを同時に稼働させて高速化を図る技術。
複数のプロセッサがメモリを共有するものを密結合プロセッサ、複数のプロセッサに別々のメモリを割り当てたものを疎結合プロセッサという。密結合プロセッサの中でも特に、外見的に一つのプロセッサに見える装置の中に複数のプロセッサを封入したものをマルチプロセッサという。
5.割り込み
現在実行中のプログラムを一時中断させて、より緊急性の高い他のプログラムを実行させるための機構。
実行しているプログラム内で発生する割り込みを内部割り込み、プログラムとは関係のない要因で発生する割り込みを外部割り込みという。
内部割り込み
- SVC割り込み プログラムが出入力など、OSに処理を依頼するためのスーパバイザコールを行ったときに発生。
- プログラム割り込み オーバーフローやゼロ除算などの例外が発生したときに行われる。
外部割り込み
- 機械チェック割り込み ハードウェアの異常が検知されたときに行われる
- 出入力割り込み 出入力装置の動作完了時に行われる
- タイマー割り込み 一定時間が経過すると行われる
- コンソール割り込み コンソールから何らかのスイッチが押されたときに行われる
6.エンディアン
複数バイトのデータを並べる順序のこと。
ビッグエンディアンはデータの上位バイトから順番にメモリに並べる一方、リトルエンディアンはデータの下位バイトから順番にメモリに並べる。