セクションを選択

ARM と x86:その違い

URL をコピー

CentOS Linux からクラウド対応のオペレーティングシステムに移行する方法

CentOS Linux からクラウド対応のオペレーティングシステムに移行する際に、クラウドの取り組みをサポートする OS を選択し、プロダクション・グレードでクラウド対応のオペレーティングシステムを導入することが重要になります。


 

ARM プロセッサーを中心に設計されたコンピュータと、インテルまたは AMD を中心に設計されたコンピュータには互換性がありません。以下に示す 2 つの基本的な問いに対するアプローチ方法はそれぞれに異なります。

  • トランジスター数とプログラムの複雑さのバランスをどのように取るか
  • 速度、消費電力、コストのうちどれを優先するか

これらの問いに対する答えは、過去 40 年間にわたり、スマートフォンからスーパーコンピュータまであらゆる分野での技術革新とソフトウェア開発を導いてきました。

背景を知るために、まず x86 プロセッサーと ARM プロセッサーを簡単に定義しましょう。

x86 プロセッサーは、ほとんどのコンピュータおよびサーバーハードウェアで使用されているプロセッサータイプであり、IT に携わる多くの人にとって身近なものです。アーキテクチャの面からいえば、x86 システム内のハードウェア・コンポーネント (サウンドカード、グラフィックスカード、メモリー、ストレージ、CPU など) はすべて互いに独立しています。ほとんどのコンポーネントには、コントローラーという個別のチップがあります。コンポーネントは、接続性やハードウェア・プラットフォーム全体に影響を与えることなく、変更または拡張できます。

ARM プロセッサーには個別の CPU がありません。その代わり、処理装置は他のハードウェア・コントローラーと同じ物理基板上にあります。これは集積回路です。さらに、インテルや AMD の CPU とは異なり、ARM プロセッサーのメーカーはありません。Arm Holdings は、他のハードウェアメーカーにチップ設計のライセンスを供与し、その ARM プロセッサーチップをハードウェアの設計に組み込んでいます。従来の x86 ベースのコンピュータとは異なり、ARM チップは互換性がなく、各アプリケーションに固有のものです。これらのプロセッサーは、システムオンチップ (SoC) と呼ばれるものに統合されて製造されます。

初期のプログラマーの間で長年行われてきた論争は、コンピュータサイエンスにおける 2 つの主要な哲学、つまり、プログラマーの作業を単純化するか、マイクロプロセッサーの作業を単純化するかの相違につながりました。
コンピュータで生産的な作業を行うには、オペレーティングシステムとそれが実行するプログラムが、中央処理装置 (CPU) だけでなく、メモリー、ストレージ、ネットワークカードなどの他のハードウェアと相互作用する必要があります。CPU は、オペレーティングシステム (および実行中のプログラム) とこれらのハードウェアの間を仲介します。プログラマーの作業を単純化するために、CPU は、命令セットまたは ISA (命令セット・アーキテクチャ) を備えており、一連のアクションと計算が事前に定義されています。オペレーティングシステムとそれが実行するプログラム (どちらもプログラマーが作成) は、これらの命令を利用して低レベルの機能を実行します。それには次のようなものがあります。

  1. CPU とハードウェア (メモリー、ストレージ、ネットワークなど) の間の相互作用
  2. 演算機能 (加算、減算など)
  3. データ操作 (バイナリーシフトなど)

オリジナルの x86 CPU には、非常に豊富な命令セットがありました (そして今もあります)。1 つの命令で、(乗算などの) 計算全体を完了したり、メモリー内のある場所から別の場所に直接データのチャンクを移動したりすることができます。大したことではないように思えるかもしれませんが、乗算や、メモリー内の場所の間でのデータの移動には、低レベルでの多くの命令が必要です。x86 コンピュータでは、この複雑な一連の操作を 1 サイクルで実行できます。このタイプの命令セットを備えた処理装置は、複合命令セットコンピュータ (CISC) と呼ばれます。

しかし、CISC コンピュータの強力な命令にはより多くのトランジスターが必要とされ、スペースと電力を大量に消費することになります。

そのため、1980 年代初頭に、エネルギー効率を高め、CPU アーキテクチャの命令セットを単純化する方法を探るためのプロジェクトが生まれました。研究者は、実際には、ほとんどのコンピュータが CISC コンピュータで提供される膨大な命令セットのごく一部しか使用していないことを発見しました。これが最終的に、縮小命令セットコンピュータ (RISC) プロセッサーの設計につながりました。RISC プロセッサーは、各命令が低消費電力の単純な操作のみで処理される命令セットを備えています。これにより、アセンブリ言語プログラマーの作業はより複雑になりますが、プロセッサーの作業は単純化されます。RISC プロセッサーと高度な RISC マシンを使用すると、複数の命令を実行するか、複雑な部分は CPU コアではなくコンパイラーに任せることによって、複雑な操作が実行されます。

ここにトレードオフの関係があります。x86 CPU は非常に高速な計算能力を備えている傾向があり、プログラミングと命令数をより明確化または単純化することができますが、その代償として、多数のトランジスターを搭載した、より大型で高価なチップが必要になります。ARM プロセッサーはある種の操作では非常に高速ですが、個々の命令のサイクルが繰り返されると速度が低下する可能性があります。これは操作がより複雑になり、操作を定義して実行するために命令セットではなくプログラミング (およびプログラマー) により多くの負担がかかるためです。 

また、これらの違いにより、コンピュータの処理能力のおおよその尺度である MIPS (100 万命令毎秒) の計算が難しい場合があります。それは、プロセッサーの種類が異なると、同じ作業を実行するために必要な命令セットが異なるためです。

RISC アーキテクチャは、最終的に PC になった小型のコンピュータ (またはマイクロコンピュータ) 向けに、より優れたパフォーマンスを備えた小型のチップを作成する必要性に端を発しました。これにより、設計に関する第二の根本的な問いが生じました。それは、チップの性能 (処理速度あるいはクロック速度) とエネルギー消費 (電力効率) のどちらに重点を置くかということです。

ARM プロセッサーは SoC として統合されているため、長い間、エネルギー消費や熱発生量の低下など、全体的なリソース管理に重点が置かれてきました。たとえば、ARM アーキテクチャ (ARMv8 など) では、冷却システムが単純化されていない傾向があります (携帯電話にはファンがありません)。しかし、x86 CPU は、消費電力の低下よりも非常に高い処理速度を優先する傾向があります。

どちらの CPU 設計も依然として高いパフォーマンスを維持できますが (ARM アーキテクチャと x86 アーキテクチャのスーパーコンピュータは世界最速を目指して競い合っています)、ARM の設計は、フォームファクターの小型化、バッテリー寿命、サイズ、冷却要件の排除、そしておそらく最も重視するものとしてコストに重点を置く傾向があります。これが、ARM プロセッサーがスマートフォン、タブレット、さらには Raspberry Pi システムなどの小型電子機器やモバイルデバイスで最も優位に立つ理由です。x86 アーキテクチャではリアルタイムの速度と柔軟性が優先され、冷却とサイズに関する制約が少ないサーバー、PC、ラップトップで広く利用されています。

ARM チップは、HPC (高性能計算) やクラウドのユースケース (AWS Graviton や Azure など) での利用が増えています。この 2 つの分野では、Red Hat Enterprise Linux がコンピューティングと互換性を提供するだけでなく、アプリケーションの開発、デプロイ、最適化も可能な優れたプラットフォームになります。

ARM CPU には、スマートフォン用の Android ベースのシステムから Raspberry Pi 用のカスタムシステムまで、Linux システムとの長い歴史があります。現在、世界最速のスーパーコンピュータも、ARM アーキテクチャの Red Hat Enterprise Linux を使用しています (Red Hat は富岳を支えています)。

x86 CPU とは異なり、各 ARM 設計のハードウェアは固有のものです。ここで、広範なオープンソース・コミュニティの力が役立ちます。Red Hat Enterprise Linux には、数百ものハードウェアベンダーからなる大規模なコミュニティがあり、すべてテストおよび認定されています。これには、ARM ハードウェアのメーカーや設計者も含まれます。Red Hat には、ARM パートナーとの早期アクセスプログラムがあり、お客様が協力して新しい ARM テクノロジーを評価できるようになっています。

Red Hat Enterprise Linux のパワーは、クラウドからサーバー、エッジに至るまで、さまざまなフットプリントにわたるパフォーマンスです。テクノロジー、エコシステム、一貫した安定性を組み合わせることで、組織は、IT が必要とされるあらゆる場所でイノベーションを起こし、適応することができます。

関連資料

記事

Linux とは

Linux は、OS の基本コンポーネントであるカーネルと、そこにバンドルするツール、アプリケーション、サービスで構成されるオープンソースのオペレーティングシステムです。

記事

SELinux とは

SELinux (Security-Enhanced Linux) は、管理者がシステムにアクセスできるユーザーをより詳細に制御できるようにする Linux® システム用のセキュリティ・アーキテクチャです。

記事

Linux カーネルとは

Linux カーネルとは、Linux オペレーティングシステム (OS) の主要コンポーネントで、コンピュータのハードウェアとプロセスとの間のコアインタフェースです。

Linux の詳細はこちら

製品

新しいアプリケーションの展開、環境の仮想化、より安全なハイブリッドクラウドの作成などに適した汎用性を誇る、安定性に優れた実績ある基盤です。

リソース