コンピュータ・アーキテクチャ
コンピュータ工学では、コンピュータアーキテクチャは、コンピュータシステムの概念設計と基本的な動作構造です。それは、すべての設計要件(特に速度と相互接続)の技術的な図面と機能的な記述であり、それは、コンピュータの様々な部分を設計し、実装する方法です - 中央処理装置(CPU)が内部的に動作し、それがどのようにメモリ内のアドレスにアクセスする方法に主に焦点を当てています。
機能、性能、コストの目標を満たすコンピュータを作成するために、ハードウェアコンポーネントを選択して相互接続する科学と芸術と定義することができます。
コンピュータアーキテクチャには、少なくとも3つの主要なサブカテゴリがあります。
- 命令セットアーキテクチャ(ISA)とは、機械語(またはアセンブリ言語)プログラマーが見るコンピューティングシステムの抽象モデルで、命令セット、メモリアドレスモード、プロセッサレジスタ、アドレスおよびデータフォーマットなどが含まれます。
- マイクロアーキテクチャは、コンピュータ組織としても知られていますが、これは下位のレベルで、コンピューティングシステムのすべての部分の動作を完全に記述するのに十分なシステムの詳細な記述であり、ISAを実装するためにそれらがどのように相互に接続され、相互に動作しているかを示しています。例えば、コンピュータのキャッシュのサイズは、一般的にISAとは何の関係もない組織的な問題です。
- などのコンピューティングシステム内の他のすべてのハードウェアコンポーネントを含むシステム設計。
· コンピュータバスやスイッチなどのシステム相互接続。
· メモリコントローラと階層。
· ダイレクトメモリアクセスなどのCPUオフロード機構。
· マルチプロセッシングのような問題。
ISAとマイクロアーキテクチャの両方が指定されたら、実際のコンピューティングシステムをハードウェアに設計する必要があります。この設計プロセスは、インプリメンテーションと呼ばれます。インプリメンテーションは通常、ハードウェアエンジニアリングの設計プロセスです。
実装は、さらに3つに分けることができますが、完全に分離されているわけではありません。
- ロジックの実装。マイクロアーキテクチャで定義されたブロックを、主にレジスタ転送とゲートレベルで設計する。
- 回路の実装。基本エレメント(ゲート、マルチプレクサ、フリップフロップなど)のトランジスタレベルの設計と、性能上の理由から、このレベルで、あるいはより低い物理レベルでも実装される可能性のあるより大きなブロック(ALU、キャッシュなど)の設計。
- 物理的な実装。物理的な回路が引き出され、異なる回路構成要素がチップのフロアプランまたは基板上に配置され、それらを接続するワイヤが配線されます。
CPUの場合、実装プロセス全体をCPUデザインと呼ぶことが多いが、RISCやCISCのような関連するCPUデザインのファミリーであってもよい。
その他のサブ定義
コンピュータアーキテクチャの実践者の中には、より細かいサブカテゴリを使用している人もいます。
- マクロアーキテクチャ。マイクロアーキテクチャよりも抽象度の高いアーキテクチャ層、例えばISAなど。
- 命令セットアーキテクチャ(ISA)。上記で定義されているように
- UISA (マイクロコード命令セットアーキテクチャ)。異なるハードウェアレベルのマイクロアーキテクチャを持つマシンのファミリーは、共通のマイクロコードアーキテクチャを共有している場合があり、そのためUISAと呼ばれています。
- アセンブリISA。スマートアセンブラは、CPUのグループに共通する抽象的なアセンブリ言語を、異なるCPU実装用のわずかに異なるマシン言語に変換することができます。
- プログラマに見えるマクロアーキテクチャー。コンパイラのような高レベルの言語ツールは、それらを使用するプログラマーに明確なインターフェイスを定義し、基礎となるISA、UISA、マイクロアーキテクチャーの違いを抽象化することができます。
- ピンアーキテクチャ。ハードウェア プラットフォームの観点から、マイクロプロセッサが提供することが期待される機能のセット。例えば、命令実行中にプロセッサが発することが期待される信号。
コンピュータアーキテクチャの例
- インテルとAMDが作ったx86。
- サン・マイクロシステムズなどが作ったSPARC。
- Apple、IBM、Motorola製のPowerPC。
関連ページ
- コンピュータハードウェア
- ソフトウェアアーキテクチャ
- マイクロアーキテクチャ
質問と回答
Q:コンピュータ・アーキテクチャとは何ですか。A:コンピュータ・アーキテクチャとは、コンピュータ・システムの概念設計と基本的な運用構造のことです。性能、コスト、機能の目標を満たすコンピュータを作るために、速度や相互接続などのすべての設計要件を技術的に図面化し、機能的に記述することを指します。
Q:コンピュータ・アーキテクチャの3つの主要なサブカテゴリーとは何ですか?
A:コンピュータ・アーキテクチャには、命令セット・アーキテクチャ(ISA)、マイクロアーキテクチャ(コンピュータ組織)、システム設計の3つの主要なサブカテゴリがあります。
Q:ISAには何が含まれますか?
A:命令セットアーキテクチャ(ISA)には、機械語やアセンブリ言語のプログラマーが見ることができるコンピュータシステムの抽象的なモデルが含まれます。これには、命令セット、メモリ・アドレス・モード、プロセッサ・レジスタ、およびアドレスとデータのフォーマットが含まれます。
Q:マイクロアーキテクチャとは何ですか?
A:マイクロアーキテクチャは、計算機システムのすべての部品の動作と、それらがどのように相互接続され、ISAを実装するために互いに作用するかを完全に記述するのに十分な、システムの下位レベルの詳細な記述を含んでいます。
Q:システム設計には何が含まれますか?
A:システム設計は、コンピュータバスやスイッチのようなシステムインターコネクト、メモリコントローラ、ダイレクトメモリアクセスのようなCPUオフロードメカニズム、マルチプロセシング問題など、コンピュータシステム内の他のすべてのハードウェアコンポーネントに関与します。
Q:インプリメンテーションはどのように3つに分けられるのですか?
A:インプリメンテーションは、マイクロアーキテクチャで定義されたブロックをレジスタ転送やゲートレベルで設計するロジック・インプリメンテーション、基本素子や大規模ブロックをトランジスタレベルで設計するサーキット・インプリメンテーション、物理回路を描き出し、チップのフロアプランやボード上に異なる回路部品を配置してそれらをつなぐ配線を行うフィジカル・インプリメンテーションに分けることができます。