 |
プロセッサの構造 |
|
プロセッサは、以下の機構から構成されます。
このうち特に、制御機構とレジスタと算術演算回路の箇所がCPUと呼ばれます。
|
|
主記憶装置
|
コンピュータ内でデータやプログラムを記憶する装置。通常「メモリ」と呼ばれる。
半導体素子を利用して電気的に記録を行うため、動作が高速で、CPUから直接読み書きすることができる。揮発性で、電源断によって内容は消去する。
|
制御機構
|
コンピュータが命令を実行する際、この一連の処理の流れを正しくコントロールする機能を持つ。
内部にシステムクロックを持ち、一定間隔ごとにパルスを発生させ、マシン内の回路の同期を取りながら、命令を進めていく。
|
演算機構
|
486は整数論理演算ユニットと浮動小数点から構成され、命令の種類に応じて、制御機構が使うユニットを割り振る。レジスタと呼ばれるCPU内部の記憶領域を用いて、命令を実行する。
|
入出力装置
|
コンピュータ内部で各回路がデータをやり取りするための伝送路。1回の転送で同時に送れるデータの量を「バス幅」と呼ぶ。
バスには大きく分けて、CPU内部の回路間を結ぶ内部バス、CPUと主記憶装置などの周辺回路を結ぶ外部バス、拡張スロットに接続された拡張カードとコンピュータ本体を結ぶ拡張バスの3種類がある。
|
|
 |
プロセッサの高速化技術 |
|
パイプライン |
|
CPUの命令実行過程は、通常4〜5段階に分割され実行されます。
パイプラインとは、この4段階を逐次的に進めるのではなく、オーバーラップさせて実行するしくみです。
単位時間に実行される総命令数が増え、スループットの改善が期待されます。
<パイプラインなし>
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
(単位時間)
|
命令1
|
T
|
U
|
V
|
W
|
|
|
|
|
|
|
|
命令2
|
|
|
|
|
T
|
U
|
V
|
W
|
|
|
|
<パイプラインあり>
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
(単位時間)
|
命令1
|
T
|
U
|
V
|
W
|
|
|
|
|
|
|
|
命令2
|
|
T
|
U
|
V
|
W
|
|
|
|
|
|
|
スーパーパイプライン
|
パイプラインの段階を細かく設定することで増やす方法。
1つの段階で行う処理の複雑度が下がるため、クロックを挙げることが可能になる。
|
スーパスケーラ
|
CPU回路に複数本のパイプラインを実装して、命令を並列に実行する方法。
|
|
|
キャッシュメモリ |
|
CPUと主記憶装置の間にある高速のメモリで、CPU−主記憶間のアクセスの高速化を実現します。
キャッシュメモリには、現在実行中の処理に当座必要となる命令やデータを、主記憶から取り出して格納します
主記憶装置への平均アクセス時間=
キャッシュメモリの平均アクセス時間 * ヒット率 + 主記憶への平均アクセス時間 * (1 - ヒット率)
※ヒット率:データがキャッシュメモリ上にある確率
キャッシュと主記憶への書き込み方法は、以下の2つの方法があります。
ライトスルー方式 |
キャッシュと同時に主記憶への同時書出しを行う。
|
ライトバック方式 |
キャッシュと同時に主記憶への同時書出しを行わない。
キャッシュのフラッシュ(初期化)時に主記憶への書き戻しを行う。
|
|
|
メモリインターリーブ |
|
主記憶装置をバンクと呼ばれる単位に分割し、バンクの数だけ並列に命令やデータを読み出す高速化技術です。
メモリの一部が故障した際に、その箇所を切り離して動作を続けるフェールセーフの機能も持ちます。 |
|
CISCとRISC |
|
プロセッサの設計方式には、主に以下のようなものがあります。
現在では、この両面の考え方をあわせもったプロセッサが開発されています。
CISC
|
高級な命令群を持ち、複雑な処理を実行できるようにすることで処理能力の向上をはかっている。Intelのx86と互換がこの方式に当てはまる。
|
RISC
|
命令群を使用頻度の高い単純なものに限定することで、パイプライン処理の効率を高め、処理性能の向上をはかっている。ワークステーション用のCPUにはこの型のプロセッサが多い。Sun Microsystems社のSPARCやDEC社(現在はCompaq Computer社の一部門)のAlphaなどがこの方式に当てはまる。
|
|
 |
仮想記憶方式 |
|
補助記憶装置をもちいて、主記憶装置の容量以上のアドレス空間を作り出す方式です。
仮想記憶の実体は、ディスク上のページデータセット上に存在します。これを外部記憶と位置付けます。
主記憶装置を実記憶と位置付けます。
実記憶と仮想記憶の間のプログラムの移動は、以下の2つの形式のいずれかで行われます。
ページング方式 |
プログラムを一定の大きさに分割し、配置する。
|
セグメント方式 |
プログラムを論理的に意味のある単位(セグメント)で分割し、配置する。
|
上記の方式で分割されたプログラムを、外部記憶−実記憶間で置き換える場合の方式は、以下のものがあります。
LUR方式 |
最も長い間参照されていないページをページアウト対象とする方式。
|
LFU方式 |
参照された回数が最も少ないページをページアウト対象とする方式。
|
FIFO方式 |
最も長い間実記憶上にあったページをページアウトする方式。最も頻繁に用いられているページへのページアウトが発生し、ページフォールトの可能性も高い。
|
※外部記憶→実記録へのページ移動をページイン、実記憶→外部記憶へのページ移動をページアウトと言います。
|