コンピュータ・アーキテクチャは、コンピュータ(主にハードウェア)における基本設計や設計思想などの基本設計概念を意味する。「実装」が細かい回路の設計を指すのに対して、おおざっぱな見取り図レベルの話。狭義のアーキテクチャとは命令セットアーキテクチャを指す。
建築の英訳であるアーキテクチャ(アーキテクチュア)が建築分野における設計や様式を指すことから転じて、コンピュータ分野においても使われるようになったもの。
パーソナルコンピュータの一般化に伴い、アーキテクチャの具体的実装例のこともアーキテクチャと呼ばれることも多くなった。
目次
1 分類
2 アーキテクチャと実装
3 設計上の観点
3.1 コスト
3.2 性能
3.3 電力消費
4 歴史的観点
5 コンピュータの種類
6 各部分要素のアーキテクチャ
7 関連項目
8 脚注
9 参考文献
10 外部リンク
//
コンピュータアーキテクチャは少なくとも次の3つに分類される[1]。
命令セットアーキテクチャ(ISA)
機械語(またはアセンブリ言語プログラマ)から見たコンピュータシステムの抽象化されたイメージであり、命令セット、アドレッシングモード、レジスタ、アドレスとデータの形式などが含まれる。すなわち、CPUをソフトウェア側から見たときのインタフェース定義である。
マイクロアーキテクチャ
さらに下位レベルでのより具体的なシステムに関する記述であり、ISAを実装するためにシステムの構成部品をどのように接続し、それらがどのように相互にやりとりするかを示す[2]。例えば、コンピュータのキャッシュの大きさは、ISAには通常何の関係もないが、その下位レベルの実装においては重要な問題である。
システム設計(システムアーキテクチャ)
上記以外のコンピュータシステムのハードウェア全般に関するもの。以下のようなものが含まれる。
バスやクロスバースイッチなどのシステムのインターコネクト
メモリコントローラやメモリ階層
Direct Memory Access などのCPUオフロード機構
マルチプロセッシングに関わる部分
複数のコンピュータによるシステム構成に関するもの(コンピュータ・クラスターやNUMAアーキテクチャなど)
ISAとマイクロアーキテクチャが決定されると、実際のハードウェアが設計される。この設計工程を一般に「実装; implementation」と呼ぶ。実装はアーキテクチャ定義には通常含まれず、ハードウェア設計に含まれる。
実装はさらに以下の3段階に分けられる。
論理実装/設計 - マイクロアーキテクチャで定義されたブロックを論理式あるいは論理ゲートレベルの回路で表す。
回路実装/設計 - マイクロアーキテクチャ上のブロック(あるいはそれと等価な論理式)やその論理回路をトランジスタレベルのデジタル回路で表す。
物理実装/設計 - 回路図に従い、チップ上の部品配置や基板上の部品配置、基板間の接続ルートなどを設計する。
CPUの場合、この実装工程全般をCPU設計と呼ぶ。
コンピュータの設計においては、制約条件と目標を考慮して、どの部分を最適化するかを決定する。コンピュータアーキテクチャは一般に、標準規格、コスト、メモリ容量、レイテンシ、スループットなどのトレードオフで決まる。場合によっては、機能、大きさ、重さ、信頼性、拡張性、電力消費量といった要素も考慮される。
典型的な手法としては、どのボトルネックが最も性能を悪化させるかを注意深く見極める。理想的には、コンピュータの各部の性能向上とそれにかかるコストが比例すると考えられ、コストのかかる部品が全体の性能を決定すると考えられる。