検索に移動1プロセッサのCPUのコンピューターの基本的なアーキテクチャを表すブロックダイアグラム。黒い線はデータフローを表し、赤い線は制御フローを表す。矢印はフローの流れを示している。architecture)は、コンピュータ(特にハードウェア)における基本設計や設計思想などを意味する。アーキテクチャ(建築)には、単に「建築物」以外に、設計や様式という意味があるが、それから転じて、コンピュータ分野においても使われるようになった。「設計思想」などと意訳されることもある。技術者や研究者の用語としては(企業ごとの用語の違いにもよるが)「方式」という語が使われることもある。1964年のSystem/360で最初に使われた用語で、その際の意味としては、入出力インタフェースを含むコンピュータシステムのハードウェア全体(周辺機器自体は含まない)の、ユーザー(プログラマ、OSを設計するプログラマも含む)から見たインタフェースの定義であり、具体的には使用できるレジスタの構成、命令セット、入出力(チャネルコントロールワード)などであり、実装は含まない。このアーキテクチャが同一のコンピュータ間や、上位互換のアーキテクチャを持つコンピュータへの移行や、上位互換の周辺機器への移行などは、ソフトウェアの互換性が原則として保証される。ハードウェアの内部設計や実装は、定義されたアーキテクチャを守る限り、技術の進歩に応じて自由に更新できる。この結果、コンピュータ・ファミリー(シリーズ)が形成可能となる。現在で言えばレイヤー定義であり仮想化の一種でもある。システムアーキテクチャ、エンタープライズアーキテクチャ、ソフトウェアアーキテクチャ、ARMアーキテクチャなどの用語も増えている。外部リンク分類[編集]コンピュータ・アーキテクチャは少なくとも次の3つに分類される[1]。命令セットアーキテクチャ(ISA)機械語(またはアセンブリ言語プログラマ、ただしOSのそれも含む)から見たプロセッサの抽象化されたイメージであり、命令セット、アドレッシングモード、レジスタ、アドレスとデータの形式などが含まれる。プロセッサをソフトウェア側から見たときのインタフェース定義である。マイクロアーキテクチャさらに下位でのより具体的なシステムに関する記述であり、ISAを実装するためにシステムの構成部品をどのように接続し、それらがどのように相互にやりとりするかを示す[2]。(内蔵の1次)キャッシュの大きさは、ISAには通常何の関係もないが、その下位レベルの実装においては重要な問題である。システム設計(システムアーキテクチャ)他のコンピュータシステムのハードウェア全般に関するもの。以下のようなものが含まれる。複数のコンピュータによるシステム構成に関するもの(コンピュータ・クラスターやNUMAアーキテクチャなど)前者2つはプロセッサのアーキテクチャである。システム設計は、コンピュータにおけるプロセッサ以外についても含む。System/360の「厳密に定義された」アーキテクチャには、だいたい、ISAが含まれマイクロアーキテクチャが含まれず、システム設計のいくらかに相当するものが含まれるが、これは当時の大型コンピュータと現在のマイクロプロセッサベースのコンピュータとの、実装技術の変化やビジネスモデルの変化などのためによる、コンピュータ(周辺機器を含む)全体のレイヤの分けかたなどの構成法の変化などによる。プロセッサのアーキテクチャと実装[編集]プロセッサ(CPU)設計(CPU設計)における、アーキテクチャの観点からの工程を説明する。ISAとマイクロアーキテクチャが決定されると、実際のハードウェアが設計される。この設計工程を一般に「実装」と呼ぶ。実装はアーキテクチャ定義には通常含まれず、ハードウェア設計に含まれる。実装はさらに以下の3段階に分けられる。マイクロアーキテクチャで定義されたブロックを論理式あるいは論理ゲートレベルの回路で表す。マイクロアーキテクチャ上のブロック(あるいはそれと等価な論理式)やその論理回路をトランジスタレベルのデジタル回路で表す。回路図に従い、チップ上の部品配置や基板上の部品配置、基板間の接続ルートなどを設計する。コンピュータ設計上の観点[編集]プロセッサだけではなく、コンピュータシステム全体の設計とアーキテクチャについて述べる。コンピュータの設計においては、制約条件と目標を考慮して、どの部分を最適化するかを決定する。コンピュータ・アーキテクチャは一般に、標準規格、コスト、メモリ容量、レイテンシ、スループットなどのトレードオフで決まる。いった要素も考慮される。典型的な手法としては、どのボトルネックが最も性能を悪化させるかを注意深く見極める。理想的には、コンピュータの各部の性能向上とそれにかかるコストが比例すると考えられ、コストのかかる部品が全体の性能を決定すると考えられる。コスト[編集]一般に、システム要件や市場の状況によって設計前に製造コストが決定される。GHz)でよく表される。これはCPUのクロックが一秒間に何サイクルであるかを示したものである。クロック周波数の高いマシンが必ずしも性能が高いとは言えない。近年ではクロックの高速化は頭打ちになりつつあり、製造業者は別の指標で性能を示すようになりつつある。プロセッサが搭載するキャッシュ容量で性能を示すという手法もある。クロック周波数が自動車の最高速度だとすれば、キャッシュ容量は車線の数に対応する。自動車がどんなに速くても、渋滞になれば速く走ることはできない。CPUが高速動作でき、キャッシュが多ければ、プロセッサは実際に高速に動作できる。最近のCPUはスーパースケーラ方式で1クロックサイクルで複数の命令を実行できる。これにより、プログラム実行性能は大幅に改善された。他にも性能に影響する要素として、実行ユニットとしてどういうものを何個持つか、バスの速度、利用可能なメモリ容量、プログラムとして実行しようとする命令の種類と順序などがある。速度を考える際に、レイテンシとスループットが重要である。レイテンシとは、ある処理が開始してから完了するまでの時間である。スループットは単位時間当たりに処理できる仕事の量である。割り込みレイテンシとは、ハードウェアのイベント(例えば、ディスクドライブの読み書きの完了)通知(割り込み)に対して、システムが応答するのにかかる時間である。性能は設計上の様々な選択によって影響される。キャッシュメモリを追加するとレイテンシは悪化するが、スループットは向上する。制御用のコンピュータでは、割り込みレイテンシの短縮が求められる。そのようなコンピュータはリアルタイム環境で運用され、所定の時間以内に処理が行われないと問題が発生する。コンピュータ制御のアンチロックブレーキは、ブレーキが踏まれたら即座に制動をかけ始めなければならない。コンピュータの性能は他の測定法によっても測定でき、用途によって様々な測定法がある。システムは用途によってボトルネックとなる部分が異なり、CPUバウンド(例えば数値計算など)、I/Oバウンド(Webサーバなど)、メモリバウンド(ビデオ編集など)に分けられる。サーバや携帯機器では電力消費量も重要な観点である。ベンチマークは、一連の評価プログラムを実行し、それにかかる時間を計ることで、上述のあらゆる観点を考慮した性能を測定するものである。ベンチマークが役に立たない場合もある。ベンチマークが異なれば、示される性能も異なる。あるアプリケーションは高速に実行できても、別のアプリケーションでは遅いかもしれない。システム設計段階で、特定のベンチマークの結果向上のためにハードウェアやソフトウェアにそのベンチマークだけを高速化できる機能を加えることもある。この機能はそのベンチマークと類似のアプリケーションでは役に立たないことが多い。電力消費[編集]電力消費は、最近のコンピュータ設計では重要性を増してきている。電力消費を抑えると、性能が低下したり、コストが増大したりすることが多い。チップの単位面積当たりのトランジスタ数が増大するにしたがって、電力効率が重要な観点となってきた。最近のプロセッサでは、電力効率の向上が重要な設計上の観点とされた。組み込み用プロセッサでは電力効率が性能と共に最重要観点となっている。歴史的観点[編集]コンピュータ関連での「アーキテクチャ」という用語の使用は、1959年、IBMの研究所に所属していたライル・R・ジョンソン[3]とフレデリック・ブルックスまで遡る。7030について、研究報告を書いた。彼は、コンピュータについて詳細を省いてある水準の記述をしたものを、それまで使われていた「マシン構成」[4]ではなく「システムアーキテクチャ」[5]と称した。ブルックスが、ある本[6]で、「コンピュータ・アーキテクチャは他のアーキテクチャと同様、構造の利用者のニーズを決定する技法であり、それらニーズに合った経済的にも技術的にも可能な限り最適な設計を行うことである」と書いている。開発でも大きな役割を果たし、そこで「アーキテクチャ」という用語は「ユーザーが知る必要のある詳細」という定義になっていった。その後、コンピュータ業界で「アーキテクチャ」という用語が様々に使われるようになった。関するものであった[7]。この論文ではアーキテクチャを「プログラマから見えるシステムの属性群。概念的構造と機能的挙動であり、データフローや制御の構成、論理設計や物理的実装とは異なる」と定義した。この定義において、「プログラマ」から見たコンピュータの機能的挙動が鍵となっている。アーキテクチャに含まれる概念的構造は機能的挙動を理解するための補助的なものであり、ユースケースの範囲を拡大可能にする。プロセッサ内部の処理方法やメモリアクセス方法(マイクロアーキテクチャ)がコンピュータ・アーキテクチャとされるようになったのは、もっと後のことである。各部分要素のアーキテクチャ[編集]命令セットアーキテクチャRISC、CISC、VLIW、EPICアーキテクチャ(実装例)x86(IA-32)、PowerPC、SPARCなど。(コンピュータ)の項を参照。<スタブ>マルチスレッドアーキテクチャブロック型マルチスレッディング、インターリーブ型マルチスレッディング、同時マルチスレッディングシステムアーキテクチャ制御アーキテクチャ割り込み制御、入出力制御バスアーキテクチャハーバードアーキテクチャ、プログラム内蔵方式(ノイマン型を含む)クロスバースイッチシステムバス、メモリバス、入出力バス。(コンピュータ)の項を参照。<スタブ>(実装例)ISA、PCI等の拡張バスアーキテクチャ。コンピュータネットワークオペレーティングシステムアーキテクチャページング方式アーキテクチャ。978-4320085275(1993年4月1日)。978-4254121001(1995年11月)。(日時は個人設定で未設定ならばUTC)。表示-継承ライセンスの下で利用可能です。追加の条件が適用される場合があります。詳細は利用規約を参照してください。Cookieに関する声明モバイルビュ。