マイクロアーキテクチャ


: microarchitecture μarch 

CPUDSP使

Intel 64 Skylake

歴史

編集

1950年代から1970年代にかけて作られた多くのコンピューターはコンピューターの命令列をデコードし実行するための制御ロジックマイクロプログラム方式によって実現していた。マイクロプログラムのワード内のビットは、実際に計算を行うユニットを制御する電気信号であった。この時代、マイクロアーキテクチャという用語はマイクロプログラムのワードによって制御されるユニットについて記述するために用いられた。

命令セットアーキテクチャとの関係

編集

[1]ISA

[2][3] [4]

22

SIMD12

2[5]

現代のマイクロアーキテクチャ

編集

使DSP[5]

 (ALU) (FPU)/SIMD



綿
  • チップの面積とコスト
  • 消費電力
  • ロジックの複雑さ
  • 接続の容易性
  • 製造の容易さ
  • デバッグの簡単さ
  • 試験をする方法、能力

マイクロアーキテクチャの設計概念 

編集

CPU

(一)

(二)

(三)

(四)

2CPU1

CPUCPU

en:History of general purpose CPUs CPU

CPU調

命令セットの選択

編集

19708086x8632IA-3264x642020

CISCRISCVLIWEPICSIMD

パイプライン処理(パイプライン化)

編集



1444CPU

RISC1RISCCISCRISCSPARCMIPS    CISC10

RISC1986VAX (8800) MIPSSPARCCPUCPUVAX 8800 Pentium 4  Athlon CISC使

キャッシュ

編集

使CPU

1980RISC4KBCPU512KBCPU12MB48MB

使

分岐予測

編集

命令レベルの並列化により高い性能を実現する上で障壁となるのが、分岐によるパイプラインのストールとフラッシュである。通常、条件分岐が発生するかどうかは、レジスタの演算結果に依存するためパイプラインの後段にならないと分からない。プロセッサの命令デコーダが条件分岐命令に出会った時点から、問題となるレジスタの値が読み出せるようになるまでの時間、パイプラインは数サイクル停止する可能性がある。平均的には、命令の五分の一は分岐であり、つまり高い頻度でストールが発生する。実際に分岐が行われると事態はより深刻で、パイプラインにあった以降すべての命令を廃棄する必要がある。

分岐予測投機実行などの手法が分岐によるペナルティを軽減させるために用いられる。分岐予測はハードウェアがある特定の分岐が起こるかどうかを推測する。推測により、プリフェッチ命令はレジスタの読み出しを待たなくてもよくなる。投機実行はこれを大きく発展させたもので、予測された経路のコードを、分岐が発生するかどうかがわかる前に実行してしまうものである。

スーパースカラー

編集

これまで述べてきたような方法を実装すると複雑さやゲート数が増大するのだが、半導体製造技術の向上により、すぐに多くのゲートが搭載できるようになってしまう。

上記に述べた方法では、プロセッサは一度に1つの命令の一部を実行する。もし複数の命令が同時に実行できれば、コンピュータのプログラムはより高速に動作するはずである。これがスーパースカラーの実現するもので、そのためにALUなどの機能ユニットを複数個搭載する。機能ユニットを複数搭載することは、シングルイシューのプロセッサのダイサイズが安定して生産できるダイサイズについていかなくなって初めて意味がある。1980年代の後半までには、スーパースケーラの設計が市場に登場し始めた。

現代的な設計では、ロードユニットを二つ、ストアユニットを1つ(多くの命令はストアする結果がないため)、2つ以上の整数演算ユニットと浮動小数点ユニット、何らかのSIMDユニットがよく見られる。命令発行のロジックはメモリから膨大な命令列を読み込み、その時点でアイドルになっている実行ユニットに引き渡すため複雑さが増大する。処理の結果は最後に集められ、並べ替えられる。

アウトオブオーダー

編集


投機実行

編集

x5x

4320CPU

 x5

マルチプロセッシングとマルチスレッディング

編集

CPUDRAM11

1調Web10調

CPU2-816-256CPU1990

CPUCPUCPU12005CPU CMP[6] UltraSPARC T1 1

CPU

CPUCPU1CPU

CPUCPU
History of general purpose CPUsの記事に、CPUの設計に影響を与えている研究分野のトピックが述べられている。

関連項目

編集

参考文献

編集
  1. ^ 英語: computer organization
  2. ^ Phillip A. Laplante (2001). Dictionary of Computer Science, Engineering, and Technology. CRC Press. pp. 94–95. ISBN 0849326915 
  3. ^ William F. Gilreath and Phillip A. Laplante (2003). Computer Architecture: A Minimalist Perspective. Springer. pp. 5. ISBN 1402074166 
  4. ^ Sivarama P. Dandamudi (2003). Fundamentals of Computer Organization and Design. Springer. pp. 5. ISBN 038795211X 
  5. ^ a b John L. Hennessy and David A. Patterson (2003). Computer Architecture: A Quantitative Approach (Third Edition ed.). Morgan Kaufmann Publishers, Inc. ISBN 1558605967 
  6. ^ : chip-level multiprocessing

読書案内

編集
  • D. Patterson and J. Hennessy (2004-08-02). Computer Organization and Design: The Hardware/Software Interface. Morgan Kaufmann Publishers, Inc.. ISBN 1558606041 
  • V. C. Hamacher, Z. G. Vrasenic, and S. G. Zaky (2001-08-02). Computer Organization. McGraw-Hill. ISBN 0072320869 
  • William Stallings (2002-07-15). Computer Organization and Architecture. Prentice Hall. ISBN 0130351199 
  • J. P. Hayes (2002-09-03). Computer Architecture and Organization. McGraw-Hill. ISBN 0072861983 
  • Gary Michael Schneider (1985). The Principles of Computer Organization. Wiley. pp. 6–7. ISBN 0471885525 
  • M. Morris Mano (1992-10-19). Computer System Architecture. Prentice Hall. pp. 3. ISBN 0131755633 
  • Mostafa Abd-El-Barr and Hesham El-Rewini (2004-12-03). Fundamentals of Computer Organization and Architecture. Wiley-Interscience. pp. 1. ISBN 0471467413 
  • IEEE Computer Society
  • PC Processor Microarchitecture