マイクロアーキテクチャ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/10/23 17:24 UTC 版)
ナビゲーションに移動 検索に移動具体的にはCPU、DSPなどのハードウェアの動作を完全に記述できるような電子回路の設計や実装を指す。学術的用語には「コンピュータ構成」もあるが、プロセッサ業界ではマイクロアーキテクチャという用語がよく使われる。
マイクロアーキテクチャと命令セットアーキテクチャは共にコンピュータ設計の一部である。インテルは命令セットを「アーキテクチャ」、各マイクロプロセッサの設計を「マイクロアーキテクチャ」と呼ぶ場合が多い(例:Intel 64 アーキテクチャ、Skylakeマイクロアーキテクチャ)。
歴史
1950年代から1970年代にかけて作られた多くのコンピューターはコンピューターの命令列をデコードし実行するための制御ロジックをマイクロプログラム方式によって実現していた。マイクロプログラムのワード内のビットは、実際に計算を行うユニットを制御する電気信号であった。この時代、マイクロアーキテクチャという用語はマイクロプログラムのワードによって制御されるユニットについて記述するために用いられた。
命令セットアーキテクチャとの関係
マイクロアーキテクチャとコンピュータの命令セットアーキテクチャははっきり区別される。命令セットアーキテクチャは機械語(アセンブリ言語)プログラマから見たコンピュータシステムの抽象的なイメージであり、命令セット、メモリアドレス指定のモードや、レジスタ、アドレスやデータのフォーマットなどを含むものである。コンピュータ構成[1]とはISAよりももっと低いレベルで具体的にシステムを記述したものである。
コンピュータの構成は、システムを形作る要素と、アーキテクチャの仕様を実現するためにそれらがどのように接続され、相互作用するかを示す[2][3] [4]。
異なるマシンが同じ命令セットアーキテクチャをもつ場合もあり、すなわち同じプログラムを実行可能であるが、異なるマイクロアーキテクチャを持つ場合がある。こうした異なるマイクロアーキテクチャは(半導体製造技術の進歩とともに)新しい世代のプロセッサが以前の世代に較べ高い性能レベルを発揮するといったことを可能にしている。理論的には、ひとつのマイクロアーキテクチャは(特にそれがマイクロコードを含んでいれば)、異なった2つの制御記憶をプログラムすることで2つの異なる命令セットを実現するために用いることができる。
マシンのマイクロアーキテクチャは通常、マシンのレジスタ、バス、機能ブロックの接続を示すブロック図で表現される。図にはいくつもの実行ユニット(たとえば浮動小数点、整数、分岐予測、単一命令による複数データ演算(SIMDなど)や、パイプラインの構造(たとえば簡単なものでは命令フェッチ、デコード、割り当て、実行などのステージを含むかもしれない)、キャッシュメモリの設計(レベル1、レベル2インターフェイス)、周辺機器のサポートなどが含まれる。
実際の物理的な回路のレイアウトや、ハードウェアの構造、パッケージ、そのほか物理的な詳細はマイクロアーキテクチャの実装と呼ばれる。2つのマシンは同じマイクロアーキテクチャを持つ可能性があり、すなわち同じブロック図で表現されるが、異なったハードウェア実装である可能性がある[5]。
現代のマイクロアーキテクチャ
パイプライン処理は、現代的なマイクロアーキテクチャで最も使われているデータ処理方法である。この手法はほとんどの近代的なマイクロプロセッサ、マイクロコントローラ、DSPに用いられている。パイプライン設計は複数の重複した実行処理ができ、あたかも工場の組み立てラインのようにふるまう。マイクロアーキテクチャ設計におけるパイプライン処理にはいくつかの基本的なステージがある[5]。ステージにはフェッチ、デコード、実行、そして書き出しなどがあり、それ以外の、たとえばメモリアクセスなどのステージを含むアーキテクチャもある。パイプラインの設計は、マイクロアークテクチャ設計で行う中心的な仕事の一つである。
実行ユニットもマイクロアークテクチャには欠かせないものである。実行処理ユニットには演算論理装置 (ALU)、浮動小数点ユニット (FPU)、ロード/ストアユニット、分岐予想ユニット、複数命令を処理するSIMDからなる。これらのユニットがプロセッサの制御や演算を行う。実行ユニット数の選択、それらの処理時間(レイテンシ)と処理能力(スループット)は、マイクロアーキテクチャ設計の作業のうちで中心的なものである。サイズ、レイテンシとスループットとシステムのメモリへの接続も、マイクロアーキテクチャ的な設計上の決定事項である。
システムレベルの設計事項のうち、たとえばメモリコントローラなどの周辺回路を含むかどうか、といったこともマイクロアーキテクチャ設計プロセスの一部と考えられている。これにはパフォーマンスや接続方法についての選択も含まれる。
アーキテクチャ設計とは異なり、特定のパフォーマンスレベルを目指す際、マイクロアーキテクチャ設計では、制約条件により綿密に注意が払われる。マイクロアークテクチャの設計上の決定事項は直結的にシステムに影響するため、以下のような問題に注意を払わなければならない。
- チップの面積とコスト
- 消費電力
- ロジックの複雑さ
- 接続の容易性
- 製造の容易さ
- デバッグの簡単さ
- 試験をする方法、能力
- ^ 英語: computer organization
- ^ Phillip A. Laplante (2001). Dictionary of Computer Science, Engineering, and Technology. CRC Press. pp. 94–95. ISBN 0849326915
- ^ William F. Gilreath and Phillip A. Laplante (2003). Computer Architecture: A Minimalist Perspective. Springer. pp. 5. ISBN 1402074166
- ^ Sivarama P. Dandamudi (2003). Fundamentals of Computer Organization and Design. Springer. pp. 5. ISBN 038795211X
- ^ a b John L. Hennessy and David A. Patterson (2003). Computer Architecture: A Quantitative Approach (Third Edition ed.). Morgan Kaufmann Publishers, Inc. ISBN 1558605967
- ^ 英: chip-level multiprocessing
- 1 マイクロアーキテクチャとは
- 2 マイクロアーキテクチャの概要
- 3 マイクロアーキテクチャの設計概念
- 4 関連項目
固有名詞の分類
学問 |
水文学 一般相対性理論 マイクロアーキテクチャ 固体化学 放射線医学 |
マイクロプロセッサ |
黄金戦士 MOS 8502 マイクロアーキテクチャ Intel 80387 Cyrix Cx486SLC |
- マイクロアーキテクチャのページへのリンク