- ベストアンサー
IA-32とMIPSの命令セットが異なる理由
なぜIA-32とMIPSの命令セットは異なるんですか? 同じ命令セットにしない必要はあったのでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
逆に、なぜ同じ命令セットにしなかったかを考えてみると、いい勉強になりそうですよ。 IA32とMIPSでは根本的に命令長も命令数もぜんぜん違うし、レジスタ構成からして違うCPUなので、同じ命令セットにはできません。オペコードのレベルで命令セットを見るのではなく、機械語のレベルまで掘り下げてください。そうすれば今の問いの無意味さがわかってくるかと思います。 IA32には過去との互換性という資産があると同時に、過去のしがらみを捨てて革新的なアーキテクチャを入れることができず、そのために命令セットは拡張に次ぐ拡張を繰り返し、非常に汚いものになってしまっています。オペランドを除いた命令長が5バイトなんて変態的命令があるかと思ったら、昔からある命令は1バイト長のがあったり、訳が解りません。この「命令長が可変である」と言う点は、IA32(と言うか典型的CISCの)特徴です。MIPSは反対に、全命令長が同じです。このためCPUの構造を簡略化できるのが特徴です。 この辺は「CISCとRISC」というキーワードで調べてみれば、いろいろわかるはず。逆にそれが解らないと、この疑問は解決できないでしょう。
その他の回答 (4)
- Microstar
- ベストアンサー率21% (289/1367)
以前4ビットマイコンのパターン設計を経験した者です。 そもそも命令セットを読取るID(インストラクションデコーダ)が違うからです。その上アーキテクチャも違います。 >同じ命令セットにしない必要はあったのでしょうか? メーカーの立場から言うと、それは無理です!と回答になります。回路構成の最適化ができなくなりますから。 もし仮に共通化ができたとしても、次のステップへのバージョンアップ(例:インテルのコアiシリーズ)は、非常に困難ですよ。 ですから、それぞれのCPUの持前を生かして、使われているのです。
- Tacosan
- ベストアンサー率23% (3656/15482)
余談ですが, 歴史を調べてみると「過去との互換性という資産」というものが実は MIPS にも影響を与えていたりします. まあ, 1回作っちゃうとなかなか「過去のしがらみ」は捨てきれるものじゃないわけで.
- trajaa
- ベストアンサー率22% (2662/11921)
乗り合いバスと乗用車のエンジンを同じエンジンにしないのと同じ理由。
- 山田 太郎(@testman199)
- ベストアンサー率17% (438/2463)
CISCとRISCをわかってる? 根本理念が違うのに同じ命令セットを使う意味はないでしょ。 また、根本理念が同じでも同じ命令セットを使うってことは、互いの長所を殺すことにつながるから、互換性と長所のバランスでしょうね