CISCとRISCの違いは何ですか?


答え 1:

RISCは通常、レジスタとの間で「ロード/ストア」されます。 通常、ADD R1 = R2 + R3などの3つのレジスタが使用されます。命令で使用されるレジスタは2つだけで、ロードとストアは例外である場合とそうでない場合があります。

CISCは一般に、メモリアドレスからの値を使用した計算を可能にし、最初にレジスタに入れる必要はありません。 また、より多くの(複雑な)アドレス指定モードを使用して、1つ以上のレジスタをアドレス生成に使用できます。

CISCは一般に2オペランドで、たとえばADDは宛先に使用されるレジスタ(またはメモリアドレス)と同じですが、ソースの1つにも使用されます。

これは大したことで、RISCはハードコードされ、CISCはマイクロコードを使用していました。

現在、CISCのマイクロアーキテクチャ、少なくともx86(すべてのCISCが使用されていない場合、IBMメインフレームが存続する他の唯一のCISCであることを意味します。マイクロコントローラーは例外である可能性があります) -元のマイクロコードとは異なり注文。

RISCがそれを行うこともあります。たとえば、新しいARM(最初はそうではありませんでした)であるため、違いは以前よりも小さくなっています。

元のARMには整数除算命令がありませんでした。浮動小数点用はもちろん、複雑すぎるためです。 浮動小数点は本質的に複雑であり、すべての主要なRISC CPUは平方根や三角法の命令までサポートするため、RISCのRの[複雑さ]の低減はあまり適用されません。


答え 2:

CISCは、指定された命令サイズから可能な限り多くの作業を行うために最適化されています。 これは、CPUにキャッシュがなかったため、メモリから命令を読み込むのに複数のサイクルが必要だったため、多くの状態が変化する複雑な命令は、コンパクトである限り問題ではなかったためです。

RISCは、命令キャッシュを備え、ボトルネックを変更するCPU向けに最適化されています。キャッシュは、アライメントされている限り、サイクルごとに64および128ビットのデータを簡単に提供できます。 突然、依存関係がない限り、サイクルごとに1つまたは2つの命令を実行できるので、単一の状態変更のみを引き起こすクリーンな命令がはるかに高速になります。


答え 3:

CISCは、指定された命令サイズから可能な限り多くの作業を行うために最適化されています。 これは、CPUにキャッシュがなかったため、メモリから命令を読み込むのに複数のサイクルが必要だったため、多くの状態が変化する複雑な命令は、コンパクトである限り問題ではなかったためです。

RISCは、命令キャッシュを備え、ボトルネックを変更するCPU向けに最適化されています。キャッシュは、アライメントされている限り、サイクルごとに64および128ビットのデータを簡単に提供できます。 突然、依存関係がない限り、サイクルごとに1つまたは2つの命令を実行できるので、単一の状態変更のみを引き起こすクリーンな命令がはるかに高速になります。