
こんにちわ.
CISCとRISCの基本的な違いについては調べればいくつものサイトが出てくるのですが,移植性について根本的に分からないことがあったので質問させていただきます.
CISCは複雑な機能をハードウェア(命令セットアーキテクチャ)で実現し,RISCは単純な命令セットで複雑な機能はソフトウェアで任せるためCISCのほうが移植性が高いと言われています.
移植性が高いとは,既存のソフトウェアを変更する必要がなく新しい機種に移行できるという意味ですが,そもそもRISCもCISCも最終的には用意された命令セットアーキテクチャを使用していることには代わりがないので,単純にその命令セットが変更しなければどちらも移植が可能な気がします.
そうなると,単純な命令セットしか使用しないRISCのほうがその分変更が少ないので移植性がむしろ高いと思うんですが,実際はそうではありません.
ソフトウェアで実現とは,コンパイラとOSのことを指すと思うのですが基本的にこれらが提供する機能に変更がなければ既存のソフトウェアは動くと思うんです.なのでこれらのコンパイラとOSがそれらの機能を実現するために使用する命令セットさせ変更がなければ良いと思うのですが…全く分かりません.
どなたか教えて頂けないでしょうか?
宜しくお願いします.
ちなみに教科書以外に以下のサイトを参考に調べていました.
http://www.atmarkit.co.jp/fsys/zunouhoudan/027zu …

No.2ベストアンサー
- 回答日時:
システムとしての移植ではなく、バイナリレベルの移植で限定して書きますが、
>なのでこれらのコンパイラとOSがそれらの機能を実現するために使用する命令セットさせ変更がなければ良いと思うのですが…全く分かりません.
命令セットが変更されているから移植するんですよ。(卵が先か鶏が先か見たいですが。。。)
なぜ命令セットを変更するのと問われれば、互換性が下がっても高速で命令を処理したいと考える人がいるからです。
互換性と高速化のせめぎ合いの中で多くの命令セットが生まれています。
あと一般的に言われる移植性とは高級言語(C言語等)での話です。
バイナリがいくら似ていても、アーキテクチャの違うCPUでは動きません。
再度、高級言語からコンパイルするしかないのです。
命令の単純なRISCではコンパイラの作成・チューニングが難しくなります。
結局、CISCとRISCの差は、
複雑さをCPU設計者が実装するか、コンパイラ設計者が実装するかの問題であり移植性とは直接関係がありません。

No.1
- 回答日時:
RISCの命令の単純さは、プログラムが長くなると言うことの裏返しでもあります。
CISCだったら1命令で済む処理を、どうかすると何100ステップも費やして書かないといけない、なんてこともあり得るわけです。長いプログラムは移植しにくくなりますよね。それに移植性の話になると、CPU命令セットだけではなく、システム全体の互換性まで考えなければなりません。CPUは同じだけど、システム構成が違う機械では互換性がなく、そのままでは使えませんので、移植作業が発生します。ましてや、CPUもシステム構成も違うなんて機械だと、大々的な移植作業、あるいは参考にして新規に作り直すことになります。
違いがコンパイラで吸収できる範囲なら、どっちでも移植はしなくて済むでしょうけど。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 宇宙科学・天文学・天気 銀河のハビタブルゾーンを確率的セルオートマトンという数値的にシミュレーションした結果、「群島」の様な 2 2023/06/06 23:10
- 政治 臓器移植の法律はアメリカと同じにするべきではないですか? 2 2023/02/11 14:03
- その他(コンピューター・テクノロジー) 量子コンピュータの動作原理がわかりません。同じビットが、1でも0でも有って良いだろうか? 3 2023/02/04 03:20
- 医学 セルメモリーはなぜメモリーなのか 3 2022/06/09 13:23
- iPhone(アイフォーン) docomo iphone8からipone13に機種変更について 4 2022/08/25 08:46
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- Android(アンドロイド) LINEアプリの利用について 5 2023/02/14 11:07
- 医療 腎臓移植(提供する側)を考えています。 3 2023/03/01 20:01
- 呼吸器・消化器・循環器の病気 腎臓移植(提供する側)を考えています。 4 2023/03/01 20:04
- iPhone(アイフォーン) 【iPhone SIMフリー】ドコモ契約者です。「機種変更を自分でする方法」について、初歩的な質問で 10 2023/08/25 06:08
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
AIXとCOBOLについて
-
FORTRANのおすすめコンパイラ
-
C++でデスクトップGUIアプリ開...
-
for文内での変数定義
-
「javac」は、何と読むのでしょ...
-
unsigned long long 型のフォー...
-
EXEファイルにランタイムは必要?
-
COBOL計算式の中間ワーク桁数に...
-
COBOLの論理演算子について質問...
-
VisualC++6.0でのProfessionalE...
-
C言語を始めようver1.1.1.7で
-
変数の内容がコロコロ変わる、...
-
OpenMAXというものについて、簡...
-
python エラー
-
エクセルのエラーメッセージ「4...
-
<unistd.h>をVisualStudioでつ...
-
” OS ビルド ” の意味が分か...
-
異なるプロジェクトの参照
-
初歩的プログラミング(C言語)
-
C/C++のfor文?エラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
unsigned long long 型のフォー...
-
ソフトの開発言語を調べる方法
-
C++でデスクトップGUIアプリ開...
-
COBOLの論理演算子について質問...
-
組み込みソフト。ROM領域にデータ
-
printfなど、標準関数のソース...
-
cc と gcc の違い
-
リリースモードとデバッグモー...
-
パーサとコンパイラの違いって?
-
AIXとCOBOLについて
-
<conio.h>?
-
COBOLのALPHABET...
-
VC++の/Zm オプションについて
-
C++Builder → Visual C++ 移植...
-
C言語の規格
-
Macで使えるC言語のコンパイラ...
-
COBOLの論理演算子について
-
変数の内容がコロコロ変わる、...
-
PICでのI2C通信でのマスタ、ス...
-
最初に使う変数のゼロクリアに...
おすすめ情報