1. 概要

このチュートリアルでは、2つの形式のCPU設計、縮小命令セットコンピューティング(RISC)アーキテクチャ、および複雑命令セットコンピューティング(CISC)アーキテクチャの長所と短所について簡単に説明します。

2. RISCと CISC

CPUを設計するための最良の方法についての議論は、80年代から続いています。一部のコンピューター科学者は、低レベルの命令は長く強力でなければならないという考えを支持しています。 これは、複雑なタスク(CISC)を実行するために使用する個別の命令を少なくすることで実行できます。 物議を醸すように、他の一部のコンピューター科学者は、コマンドをより短く、より単純にすることができると主張しています。 複雑なタスク(RISC)を実行するには、より個別の命令が必要です。 ただし、命令ごとのサイクル数は少なくなります。

ムーアの法則によると、マイクロチップ上のトランジスタの数は2年ごとに倍増し、コストは半分になります。 CISCを設計する際、ハードウェア側の複雑さが増すため、常に高いリスクがあります。 また、新しいCISCアーキテクチャの設計にも時間がかかります。 一方、RISCは単純なアーキテクチャであり、実装も簡単です。 これは、市場投入までの時間が短く、CISCよりもリスクが低いことを意味します。 そのため、RISCはムーアの法則の必然的な結論です。

どちらが良いかについてはいくつかの議論がありますが、この議論に対する正しい答えはないと言えます。 どちらのアプローチにも長所と短所があるからです。 次の図で、RISCとCISCの全体的な比較を確認できます。

3. RISC

RISC(縮小命令セットコンピューティング)アーキテクチャは、命令の複雑さを軽減し、高速クロック速度でサイクル内で実行されるシンプルで強力な命令を提供することを目的とした設計上の選択です。 それはによって提案されますデイビッド・パターソンジョン・ヘネシー

ハードウェアによって実行される命令セットの複雑さを軽減することで、ハードウェアではなくソフトウェアを使用して柔軟なインテリジェンスを提供するための道が開かれます。 その結果、RISCアーキテクチャの設計では、コンパイラをさらに複雑にする必要があります。

3.1. いくつかの主要な設計原則

RISCには、いくつかの主要な設計原則があります。

  • 命令:RISCプロセッサの命令クラスの数は制限されています。 これらのクラスには、単一のサイクルで完了することができるいくつかの基本的な操作が含まれています。 コンパイラーまたはプログラマーは、多数の基本的な命令を組み合わせて、除算演算などの複雑な演算を作成します。
  • レジスター:RISCプロセッサーには、汎用レジスター・セットがあります。 どのレジスタもデータまたはアドレスを保持できます。 すべてのデータ処理アクティビティで、レジスタは高速メモリストレージとして機能します。
  • パイプライン:パイプラインは、命令処理を並列で実行できる小さな部分に分割します。
  • ロードストアアーキテクチャ:プロセッサは、レジスタに格納されたデータを処理します。 データは、個別のロードおよびストア命令を使用してレジスタとメモリ間で転送されます。 メモリアクセスは高価であるため、メモリアクセスをデータ処理から分離することには利点があります。 データ項目はレジスタに保持でき、複数回のメモリ訪問を必要とせずに何度も使用できるためです。

これらの設計原則により、RISCプロセッサはよりシンプルになります。 この状況では、コアをより高いクロック周波数で実行できます。 一方、従来のCISCプロセッサはより複雑で、より低いクロック周波数で動作します。 ただし、RISCとCISCの間の境界線は、近年衰退しています。これは、CISCプロセッサがRISCの設計原則の一部を採用しているためです。

RISCの最も一般的な例は、多くの携帯電話やPDA、Sparc、およびPowerPCで使用されているARMです。

3.2. RISCアーキテクチャの利点

  • その単純さのために、それはマイクロプロセッサー上のスペースの使用とエネルギー節約を提供します。 そのため、主に携帯電話(ARMプロセッサ)で使用されています。
  • RISCアーキテクチャには、一連の命令が含まれています。 これにより、高級言語コンパイラーはより効率的なコードを作成できます。
  • RISCプロセッサは、レジスタを利用してパラメータを渡し、ローカルパラメータを格納します。
  • RISC命令は、限定された引数を使用します。 したがって、固定長の命令を使用します。 これは、命令のパイプラインが簡単だからです。
  • 実行時間を短縮しながら、操作速度を上げることができます。

3.3. RISCアーキテクチャのデメリット

  • RISCプロセッサのパフォーマンスは、コンパイラに依存する可能性があります。 CISCコードをRISCコードに変換する際には、コンパイラの知識が重要な役割を果たすためです。
  • コンパイラーには非常に複雑なものが必要です。

4. CISC

CISCは、CPU設計の先祖のアプローチです。 いくつかの原則が見つからなかった前は、CISCがこの分野で著名だったからです。 したがって、CISCアーキテクチャは、プログラムあたりの命令数を減らし、命令あたりのサイクル数を増やすことを目的としています。

CISCアーキテクチャベースのコンピュータは、メモリコストを削減することを目的としています。 巨大なプログラムはより多くのストレージを必要とするため、メモリが大きいとコストが発生します。 これらの問題に対処するために、1つの命令に命令の数を組み合わせることにより、プログラムあたりの命令の数を減らすことができます。 したがって、ハードウェア上の命令の複雑さが増します。

CISCの最も一般的な例は、x86CPUです。

4.1. CISCアーキテクチャの利点

  • 各命令は複雑であるため、特定のタスクを実装するために使用できる命令は少なくなります。
  • コードサイズが小さくなります。

4.2. CISCアーキテクチャのデメリット

  • 通常のプロセスでは、いくつかの特殊な指示が実際には定期的に使用されていなくても。
  • さまざまな命令に必要なクロック時間が変化するため、マシンのパフォーマンスが低下します。

5. RISCとCISCの違い

 

下の図も見て、RISCとCISCの違いを理解しましょう。 これは、メモリ内の2つの数値を乗算する例です。

CISCアプローチでは、図に示すように、複雑な命令「MULT」は1つだけです。すべてを処理します。 コンピュータのメモリ上で直接動作します。 したがって、プログラマーが手動でロードまたは保存を呼び出す必要はありません。 これは、高級言語のコマンドに似ています。

RISCアプローチでは、図からわかるように、複数の命令があります。 RISCプロセッサは、単純な命令を実行するためです。 これらの命令は、単一のクロックサイクルで完了することができます。 その結果、「MULT」命令は、メモリからレジスタにデータを移動する「LOAD」、レジスタに配置された2つの入力の積を計算する「PROD」、および「STORE」の3つの別々の命令に分割されます。データをレジスタからメモリに移動します。

6. 結論

このチュートリアルでは、CPUの設計上の選択に関する継続的な議論の詳細を共有しました。 RISCおよびCISCアーキテクチャに関する情報を簡単に説明しました。 両方の設計選択の長所と短所を共有しました。 最近、ARMは独自仕様であるため、RISC-Vが登場し、マイクロプロセッサアーキテクチャの市場シェアを変え始めています。