ARMとは何か?CPU・x86・RISCとの違いを詳しく解説

はじめに パソコンやスマートフォンについて調べていると、次のような言葉を見かける。 ARM ARM64 AArch64 x86 x86-64 AMD64 RISC CISC Apple Silicon Snapdragon これらはすべて同じ種類の名前ではない。 CPU製品の名前、CPUを設計する会社の名前、CPUが理解する命令体系の名前などが混在しているため、初めて見ると分かりにくい。 結論から言えば、ARMとは主にCPUの命令セットアーキテクチャの一種である。 また、その技術を開発し、企業へライセンス提供している会社もArmという名前である。 この記事では、ARMが何を意味するのかを、x86との違い、RISCとCISC、Linuxやソフトウェアとの関係も含めて整理する。 CPUとは何か CPUは、コンピュータの中でプログラムの命令を実行する部品である。 正式名称は次のとおり。 Central Processing Unit 中央処理装置 CPUは、非常に単純化すると次の処理を繰り返している。 メモリから命令を読み込む 命令の意味を解釈する 計算やデータ移動を実行する 次の命令を読み込む CPUが実行する処理には、次のようなものがある。 数値を足す 数値を引く 数値を比較する メモリからデータを読み込む メモリへデータを書き込む 条件によって処理を分岐する 関数を呼び出す OSへ処理を依頼する ブラウザ、ゲーム、Linux、Windowsなども、最終的にはCPUが理解できる命令として実行されている。 ARMとは何か ARMは、CPUがどのような命令を理解し、どのように動作するかを定めた体系である。 より正確には、命令セットアーキテクチャと呼ばれる。 英語では次のように書く。 Instruction Set Architecture 略称はISAである。 ISAでは、例えば次のような事項が定められる。 CPUが利用できる命令 レジスタの種類と数 数値の表現方法 メモリの指定方法 関数呼び出しの基本方式 例外や割り込みの処理方法 32ビットと64ビットの動作 CPUからソフトウェアに見える基本仕様 つまりISAは、CPUとソフトウェアの間にある約束事である。 ARMとx86では、この約束事が異なる。そのため、ARM向けに作られた機械語と、x86向けに作られた機械語は同じではない。 ARMという名前は会社も指す ARMという名前は、命令セットだけでなく、それを開発するArm社も指す。 IntelやAMDは、自社でCPUを設計し、Intel CoreやAMD Ryzenなどの製品として販売している。 一方、Arm社は主に次のものを他社へ提供する。 ARM命令セットを利用する権利 CPUコアの設計 GPUの設計 周辺回路の設計 開発用ソフトウェア セキュリティ関連技術 Arm社の技術を利用して、複数の企業が独自のCPUやSoCを作っている。 ...