- ベストアンサー
CISCとRISCの移植性について
こんにちわ. CISCとRISCの基本的な違いについては調べればいくつものサイトが出てくるのですが,移植性について根本的に分からないことがあったので質問させていただきます. CISCは複雑な機能をハードウェア(命令セットアーキテクチャ)で実現し,RISCは単純な命令セットで複雑な機能はソフトウェアで任せるためCISCのほうが移植性が高いと言われています. 移植性が高いとは,既存のソフトウェアを変更する必要がなく新しい機種に移行できるという意味ですが,そもそもRISCもCISCも最終的には用意された命令セットアーキテクチャを使用していることには代わりがないので,単純にその命令セットが変更しなければどちらも移植が可能な気がします. そうなると,単純な命令セットしか使用しないRISCのほうがその分変更が少ないので移植性がむしろ高いと思うんですが,実際はそうではありません. ソフトウェアで実現とは,コンパイラとOSのことを指すと思うのですが基本的にこれらが提供する機能に変更がなければ既存のソフトウェアは動くと思うんです.なのでこれらのコンパイラとOSがそれらの機能を実現するために使用する命令セットさせ変更がなければ良いと思うのですが…全く分かりません. どなたか教えて頂けないでしょうか? 宜しくお願いします. ちなみに教科書以外に以下のサイトを参考に調べていました. http://www.atmarkit.co.jp/fsys/zunouhoudan/027zunou/end_of_risc.html
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
システムとしての移植ではなく、バイナリレベルの移植で限定して書きますが、 >なのでこれらのコンパイラとOSがそれらの機能を実現するために使用する命令セットさせ変更がなければ良いと思うのですが…全く分かりません. 命令セットが変更されているから移植するんですよ。(卵が先か鶏が先か見たいですが。。。) なぜ命令セットを変更するのと問われれば、互換性が下がっても高速で命令を処理したいと考える人がいるからです。 互換性と高速化のせめぎ合いの中で多くの命令セットが生まれています。 あと一般的に言われる移植性とは高級言語(C言語等)での話です。 バイナリがいくら似ていても、アーキテクチャの違うCPUでは動きません。 再度、高級言語からコンパイルするしかないのです。 命令の単純なRISCではコンパイラの作成・チューニングが難しくなります。 結局、CISCとRISCの差は、 複雑さをCPU設計者が実装するか、コンパイラ設計者が実装するかの問題であり移植性とは直接関係がありません。
その他の回答 (1)
RISCの命令の単純さは、プログラムが長くなると言うことの裏返しでもあります。CISCだったら1命令で済む処理を、どうかすると何100ステップも費やして書かないといけない、なんてこともあり得るわけです。長いプログラムは移植しにくくなりますよね。 それに移植性の話になると、CPU命令セットだけではなく、システム全体の互換性まで考えなければなりません。CPUは同じだけど、システム構成が違う機械では互換性がなく、そのままでは使えませんので、移植作業が発生します。ましてや、CPUもシステム構成も違うなんて機械だと、大々的な移植作業、あるいは参考にして新規に作り直すことになります。 違いがコンパイラで吸収できる範囲なら、どっちでも移植はしなくて済むでしょうけど。
お礼
遅くなりましたが,ありがとうございます. ある程度感じが掴めました.
お礼
遅くなりましたが,ご回答ありがとうございます. 御丁寧な説明とても分かりやすかったです.