TECH MEDIA

テックメディア


技術
コンピューターアーキテクチャー

アーキテクチャーとマイクロアーキテクチャーってどう違うの?

目次
  1. 01|はじめに
  2. 02|アーキテクチャー (Architecture)
  3. 03|マイクロアーキテクチャー (Micro architecture)
  4. 04|結論「アーキテクチャーとマイクロアーキテクチャーってどう違うの?」

1. はじめに

前回の記事でご紹介しましたが、コンピューターアーキテクチャーのオンライン授業を受け始めました。
その中で、なかなか理解できず、苦しんだ部分があったため
皆さんにシェアしよう思い記事を書きました。
今回は、アーキテクチャーとマイクロアーキテクチャーの違いについて解説します。

2. アーキテクチャー (Architecture)

アーキテクチャーはコンピューターの 設計図 のようなものです。
そこには、CPUの命令セット、データ型、メモリモデルなどが含まれます。
例えば、x86ARMなどがこれに該当します。
これらのアーキテクチャーの例は、聞きなじみがあると思います。

個人的に面白いと思った部分として、
例外はありますが、アーキテクチャーが違えば基本的にプログラムは動作しない、という点です。
(Windows
用にコンパイルされたソフトウェアは、基本的にLinuxmacOSでは動作しませんよね。)

アーキテクチャーが異なると、CPUが理解できる命令セット (ISA) も異なります。
例えば、ARMアーキテクチャーとx86アーキテクチャーでは、使用できる命令セットが異なるため、
x86プロセッサーでコンパイルされたプログラムはARMプロセッサーでは直接実行できません。

また、異なるアーキテクチャー間では、バイナリ (実行可能ファイル) レベルでの互換性がありません。
したがって、一つのアーキテクチャーでコンパイルされたプログラムは、他のアーキテクチャーで基本的には動作しません。

3. マイクロアーキテクチャー (Micro architecture)

マイクロアーキテクチャーは、実際のコンピューターの作り方組み合わせのようなものです。
これは、アーキテクチャーを実現するために、何をどのように実装するかということを指しています。
例えば、パイプラインの構造、キャッシュの設計、命令のデコードや実行の仕組みなどです。

マイクロアーキテクチャーは、同じアーキテクチャーでも、メーカーやモデルによって異なることがあります。
例えば、IntelCore i7AMDRyzenは、どちらもx86アーキテクチャーを採用していますが、マイクロアーキテクチャーは異なります。

コンピューターを最適化する際に、このマイクロアーキテクチャーを最適化します。
各要素はトレードオフの関係にあります。
例えば、パフォーマンスを向上させようとすると、消費電力が増加します。
また、コストを削減しようとすると、パフォーマンスが低下する可能性があります。
さらに、複雑な機能を追加しようとすると、チップの面積が大きくなり、コストが高くなります。
最後に、設計者は、用途に応じてマイクロアーキテクチャーを最適化し、
その結果、多くの種類の製品が販売されます。

 

例)

アーキテクチャー: x86
マイクロアーキテクチャーの例: IntelSkylakeAMDZen
アーキテクチャー: ARM
マイクロアーキテクチャーの例: Cortex-A76Cortex-A57

4. 結論「アーキテクチャーとマイクロアーキテクチャーってどう違うの?」

簡単に言うと、アーキテクチャーはコンピューターの決まり事設計で、
マイクロアーキテクチャーはその実装方法です。

(参照)Computer Architecture by David Wentzlaff from Princeton University

RECRUIT 採用情報

「eビジネスに関わる全ての人を幸せにする」
私達とともに新たな時代をつくりませんか?