コンピュータ・アーキテクチャ
[Wikipedia|▼Menu]
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%;font-size:90%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}

出典は列挙するだけでなく、脚注などを用いてどの記述の情報源であるかを明記してください。記事の信頼性向上にご協力をお願いいたします。(2021年9月)
1プロセッサのCPUのコンピュータの基本的なアーキテクチャを表すブロックダイアグラム。黒い線はデータフローを表し、赤い線は制御フローを表す。矢印はフローの向きを示している。

コンピュータ・アーキテクチャ(: computer architecture)は、基本的には、コンピュータ(特にハードウェア)の論理的な構成(法)のことであり、構成要素[注釈 1]として何があるか、各構成要素がどのような機能・役割を与えられ、相互にどのような連絡をして全体としてひとつのコンピュータとして機能しているか、に関する記述やとり決めのことである。[1] 他の語と組み合わせる場合は通常「方式」と訳す。意訳して「設計思想」とも。
概説

アーキテクチャはもともと建築関連用語で、単に「建築物」以外に、設計や様式という意味があるが、それが転じて、コンピュータ分野においても使われるようになった。「設計思想」などと意訳されることもある[2][3][4]。技術者や研究者の用語としては(企業ごとの用語の違いにもよるが)「方式」という語が使われることもある。

1964年のSystem/360で最初に使われた用語で、その際の意味としては、入出力インタフェースを含むコンピュータシステムのハードウェア全体(周辺機器は含まない)の、ユーザー(プログラマオペレーティングシステム (OS) を設計するプログラマも含む)から見た構成要素とそのインタフェースの定義であり、具体的には使用できるレジスタの構成、命令セット入出力(チャネルコントロールワード)などである。各構成要素の実装(つまり各構成要素が具体的にどのような電子部品の組み合わせや集積回路で実現されるか)に関する記述・とりきめは含まない。つまりここでアーキテクチャはソフトウェア側から見たコンピュータの構成要素とその動作の外形的な定義であるので、アーキテクチャが同一・一定であれば、ソフトウェアの互換性が原則として保証されることになり、同一のソフトウェアを使い続けつつ上位互換のアーキテクチャを持つコンピュータへ移行することや、上位互換の周辺機器へ変更することも可能となる。また定義されたアーキテクチャを守り各構成要素の外形的な動作を記述どおりに実現しさえすれば、その内部設計や実装は技術の進歩などに応じて自由に変更・更新できる、ということになった。この結果、コンピュータ・ファミリー(シリーズ)が形成可能となった。

また、エンタープライズアーキテクチャソフトウェアアーキテクチャARMアーキテクチャなどの用語も増えている。
分類

この分野で評価の高いヘネシーとパターソンの2003年の書では、コンピュータ・アーキテクチャは少なくとも次の3つに分類される、とされた[5]
命令セットアーキテクチャ(Instruction Set Architecture, ISA)
機械語またはアセンブリ言語のプログラマ(OSのプログラマも含む)から見た、CPUプロセッサ)の抽象化されたモデル(イメージ)である[6]。ソフトウェア側から見たCPUのインタフェース定義であり、ソフトウェアがCPUに何をさせることができるか、またそれがどのようになされるか、を明らかにするものである[6]命令セットアドレッシングモードレジスタ、アドレスとデータの形式などが含まれる。
マイクロアーキテクチャ
ISAより下層の、より具体的なシステムに関する記述であり、ISAを実装するためにシステムの構成部品をどのように接続し、それらがどのように相互にやりとりするかを示す[7]。CPUの回路的な構造[8]、とも言える。マイクロアーキテクチャにはパイプラインの長さやレイアウト、(CPU内の)キャッシュの数や容量、CPI(1命令あたりのクロックサイクル数) などが含まれる[9]。マイクロアーキテクチャは通常ISAとは何の関係も無く、それより下層に存在し、プログラマからは "見えない存在" だが、CPUの処理速度と密接な関係がある。
システムアーキテクチャ(「システム設計」とも)
上述したもの以外の、コンピュータシステムのハードウェア全般に関するもの。以下のようなものが含まれる。
バスクロスバースイッチなどのシステムのインターコネクト

メモリコントローラやメモリ階層

ダイレクト・メモリー・アクセス(DMA)などのCPUオフロード機構

マルチプロセッシングに関わる部分

複数のコンピュータによるシステム構成に関するもの(コンピュータ・クラスターNUMAアーキテクチャなど)

前者2つはプロセッサのアーキテクチャである。3番目のシステムアーキテクチャは、プロセッサ以外の要素も含めコンピュータ全体のアーキテクチャである。

なお、もともとのSystem/360の「厳密に定義された」アーキテクチャには、ISAが含まれマイクロアーキテクチャが含まれず、3番目のシステムアーキテクチャのいくつかに相当するものが含まれるという相違点があるが、これは、System/360のようにまだ集積回路すら使わず単体のトランジスタやダイオードや抵抗を基板上で組み合わせて[注釈 2]実装していた当時の大型コンピュータと現在のマイクロプロセッサベースのコンピュータとでは、実装技術が大きく異なり、またビジネスモデルが変化し(周辺機器を含む)コンピュータシステム全体のレイヤの分けかたも変化したことによる。
CPUのアーキテクチャ

CPUのアーキテクチャについて説明する。
フォン・ノイマン型アーキテクチャとハーバード・アーキテクチャ
フォン・ノイマン型アーキテクチャ

フォン・ノイマン型アーキテクチャは(ハーバード・アーキテクチャと対比される場合)、メモリ内の命令とデータは区別しない方式のことで、ひとつのメモリの中に命令とデータが置かれるアーキテクチャ。命令をデータとして扱うこともでき、データを命令として扱うこともできる。動作中に命令を書き換えることもできる。最初、1944年ジョン・モークリージョン・プレスパー・エッカートEDVACのためにつくったアーキテクチャであり、後からチームに合流したフォン・ノイマンがそれを自分の名で報告書にまとめたのでフォン・ノイマンの名で呼ばれている。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:69 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef