【初心者向け】RISC-Vとは?AMDやX86との違いも含めて解説

【初心者向け】RISC-Vとは?AMDやX86との違いも含めて解説

RISC-Vについて気になったので簡単にまとめてみました。


初心者向けというのは、私が初心者だからです

RISC-Vとは?

RISC-Vとは、UC Berkeleyで開発されたオープンソースのISA(Instruction Set Architecture)です。


私は最初にカンチガイしていたのですが、RISC-VはあくまでもISAであって、CPUそのものではないということに注意です

ISAとは

ISA(Instruction Set Architecture)、通称、命令セットアーキテクチャとは、CPUが実行する命令の集合および、レジスタの集合、メモリアクセスや入出力の方法などを定義したものです。

簡単に言うと、CPUにおけるルールを定義したものです。


なので、CPUは、ISAに定義された命令が実行できるように設計・開発されます。


余談ですが、ソースコードが無くても、ISAに対してオープンソース、って呼んだりするということを初めて知りました

CISCとRISC

RISC-Vの「RISC」とは何かというと、そもそもCPUの設計方針にはCISCRISCの2種類があり、RISC-Vは、RISCの設計手法に乗っ取っているため、RISC-Vなのだと思います。

CISC

CISC(Complex Instruction Set Computer)は、複雑な指示が実行できるという特徴があります

CISCは、複雑な命令セットを持っており、「2*2+1の演算結果をそこのレジスタに保存する。」といった処理も一度の命令で実行できます。


効率的な作業を行える一方で、消費電力は比較的高いという特徴があります

x86は、このCISCに基づいています。

RISC

RISC(Reduced Instruction Set Computer)は、CISCとは対照的に、基本的な命令だけを持っているという特徴があります

RISCは、単純な処理しか持たないので、「2*2+1」といった演算をするためには、
「①2と2をかける。②結果をレジスタに保存。③保存した数と1を足す。④結果を出力する」

といったように、単純な命令を組み合わせて実行します。

単純な命令しか持たないので、一つ一つの命令は高速で、低消費電力という特徴があります。

ArmとRISC-Vは、このRISCに基づいています。

Arm、x86との比較

Arm

Armは、RISCベースで、シンプルで速い命令セットを使用しているのが特徴です。

エネルギー効率が高く、低消費電力であるため、組み込み機器や、モバイルデバイスにも使用されます


ただ、ライセンス料がやばい

x86

x86は、Intelが開発(現在ではIntelとAMDが共同で開発)したCISCベースアーキテクチャで、多くのOSと高い互換性があります

また、CISCベースであることから、性能が高く、消費電力は比較的大きいという特徴があります。


ライセンス料がやばい

RISC-V

RISC-Vは、Armと同様に、RISCベースで、命令がシンプルで速いという特徴があります

また、強みとして、改変が自由で、拡張性が高いです

そのため、用途に合わせた設計が可能で、Armよりもさらに組み込み機器に採用されています


そして何よりライセンス料が無料です

RISC-Vを実装したCPU

実際にRISC-Vを実装したCPUとして、有名なのを2つほど紹介します

Rocket Chip

RISC-Vを開発したUC Berkeleyが開発した、オープンソースのCPUコアです。

  • 低消費電力
  • インオーダー実行(順番に命令を処理する)

下記に、Rocket ChipのGithubリンクを載せます

BOOM

こちらも、UC Berkeleyが開発した、オープンソースのCPUコアです。

  • スーパースカラで、高性能
  • アウトオブオーダ実行(依存関係がない命令を優先して実行)

下記に、BOOMのGithubリンクを載せます

まとめ

ざっとでしたが、RISC-Vについて調べてみました。

詳細な仕様などは RISC-Vの開発ページ などを見ると良いのですが、


  • 詳細であるが故に難解な表現・専門用語多数

  • 当然のように全文英語

という、公式ドキュメントあるあるの例に漏れずむずいので、


初心者向けに解説している記事や書籍を参考にするのが良いと思います。
私もそうしようと思います。