- 締切済み
トレードオフ2
(3)アドレッシング方式の豊富さの観点から、プログラムの書きやすさと、プログラムの実行性能の間のトレードオフについて論ぜよ。 アドレス指定方式は、実際には利用するCPUの種類ごとにどの方式が利用可能かが異なる。ゆえに豊富なアドレス指定方式を備えたCPUは実行性能は高くなるが、種類が多い分、プログラムが複雑になる。一方、アドレス指定方式が少数種類しかないCPUは豊富なアドレス指定方式を備えたCPUと比べると実行性能は低くなるが、種類が少ない分、プログラムが簡単になる。 という答えを導きました。ご確認お願い致します。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- wormhole
- ベストアンサー率28% (1626/5665)
#3です。 >「レジスタも多く必要になる」「CPUの命令パイプライン~」どっちもアドレッシングの豊富さとは関係ありません。 もしわけありません。 「関係ありません」はいいすぎでした。 無関係ではないですけど 「レジスタも多く必要になる」というよりは「レジスタを多くしないと性能が出ない」だと思いますし、命令パイプラインの設計も必ずしも容易になるわけではなく「命令パイプラインの設計が容易になる可能性がある」くらいかと思います。
- wormhole
- ベストアンサー率28% (1626/5665)
#4の方の指摘をしたいわけではないのですが >例えば、古典的なMIPSでは通常使われる全ての命令が1命令4バイトとなっているので10命令先まで読み込んでキャッシュしておく事は非常に簡単にできますが、Intel x86では1命令が1バイトから15バイトくらいの可変長になっており、それ故に1クロックで確実に1命令(パイプラインを勘定に入れれば、実装によって2~3命令)発行できるようにするために、かなり手荒な並列計算処理を行っており、その制御回路が複雑怪奇になっていると聞きます。 って書くと、質問者さんは 命令が可変長=豊富なアドレッシング方式を持つ と勘違いされそうな。 他の質問でのやりとりとか読んでると、そんな気がします。
- pixie-grasper
- ベストアンサー率49% (28/57)
#2です。 > という風にまとめました。いかがでしょうか? 知ってる単語をただ並べても、トンチンカンなら大幅減点です・・・。 確かに、アドレッシング方式を単純なものに限ればパイプラインまわりの回路の設計「も」簡単にはなるんですが、デコーダが簡略化される方が強く効いてくるような。 例えば、古典的なMIPSでは通常使われる全ての命令が1命令4バイトとなっているので10命令先まで読み込んでキャッシュしておく事は非常に簡単にできますが、Intel x86では1命令が1バイトから15バイトくらいの可変長になっており、それ故に1クロックで確実に1命令(パイプラインを勘定に入れれば、実装によって2~3命令)発行できるようにするために、かなり手荒な並列計算処理を行っており、その制御回路が複雑怪奇になっていると聞きます。
- wormhole
- ベストアンサー率28% (1626/5665)
>複雑なアドレス方式を廃し、単純なアドレス方式だけにすると、使用する命令数が増え、レジスタも多く必要になるが、アドレス方式を単純化することで、CPUの命令パイプラインの設計が容易になるという利点がある。 「レジスタも多く必要になる」「CPUの命令パイプライン~」どっちもアドレッシングの豊富さとは関係ありません。
- pixie-grasper
- ベストアンサー率49% (28/57)
> プログラムの書きやすさと、プログラムの実行性能の間のトレードオフについて論ぜよ とあるので、「プログラムを書きやすくすると実行性能が落ちる」という事を大真面目に論じれば問題ありません、が、その答えでは結論が逆になっています。 アセンブリ言語を何種類か触った経験があればまず間違えないことなのですが、一般に、「アドレッシング方式が豊か」≒「プログラムは書きやすいが、回路の設計が複雑化する、命令長が長くなる等の問題で実行速度は犠牲になる」となります。 アドレッシング方式が豊かであるとはどういうことなのか、調べてみてはどうでしょう?
- 麻野 なぎ(@AsanoNagi)
- ベストアンサー率45% (763/1670)
普通は、アドレッシング方式が豊富な方が、「実行性能」は低くなります。
お礼
ありがとうございます。
補足
ご丁寧にありがとうございます。 アドレッシング方式が豊かであることはプログラムは書きやすいが回路の設計が複雑化する、命令長が長くなる等の問題で実行速度は犠牲になるためプログラムの実行性能は低くなる。 複雑なアドレス方式を廃し、単純なアドレス方式だけにすると、使用する命令数が増え、レジスタも多く必要になるが、アドレス方式を単純化することで、CPUの命令パイプラインの設計が容易になるという利点がある。 という風にまとめました。いかがでしょうか?