2013-06-25 3 views
7

なぜCISCプロセッサはパイプライン化が難しいのですか?どのような意味で、他の命令よりも複雑な命令がありますか?マイルMurdocaとヴィンセントHeuringによる「コンピュータアーキテクチャと組織」によると

CISC命令は非常によく、パイプライン・アーキテクチャに適合しません。 パイプラインが効果的に機能するためには、各命令は、少なくとも 命令の複雑さに関して、他の命令との類似性が である必要があります。

これは本当ですか?命令の複雑さが意味するのは、すべての命令が実行を開始するのに1クロックサイクルかかるわけではありません。命令がメモリに読み書きしている場合は、時間がかかりますが、読み込まれたRISCプロセッサもメモリに書き込まれています(もちろん)。

+0

本の著者が何を意味するのかを知る最良の方法は、それらに直接質問することです。あなたの質問の他の部分については、現代のプロセッサでは、単純な命令(ADD/SUB/MOV、論理命令、シフト)は通常1サイクルで実行され、整数乗算は3-4サイクルで、浮動小数点乗算は3-6で、 2-5でポイントを加算する。 –

+0

@MaratDukhanでもサイクルは何ですか? [Google検索](https://www.google.com/search?q=define%3Acycle&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a#client) = firefox-a&hs = Mig&rls = org.mozilla:en-US:公式&q =時計+サイクル&tbs = dfn:1&tbo = u&sa = X&ei = 9hfJUZvXLrD1igLztYHYDw&ved = 0CC0QkQ4&bav = on.2、または.r_qf。&bvm = bv.48340889、d.cGE&fp = a6e1eebee3fff02f&biw = 1920&bih = 956)は、それが時間の最も基本的な単位であるか、または1つの命令を完了するのに要する時間であり、循環的な定義を与えると述べた。 – Celeritas

+1

1分当たり1つのウィジェットを生成するアセンブリラインは、ウィジェットが生成するのに1分かかるということを決して意味しません。ウィジェットの開始が完了するまで数時間または数日かかることがあります。その生産ラインはウィジェットあたりのバリエーションが非常に少ない可能性が非常に高いため、組み立てラインは分ごとに永久にスムーズに動くことができます。命令は明らかに現代のコンピュータまたは古いもので完了するためにいくつかのクロックサイクルを開始します。彼らは命令のバーストのためにクロックサイクルごとに完了した1つ(またはそれ以上)の命令を平均化しようと努力し、ストールを起こしてやり直します。 –

答えて

10

命令の「複雑さ」は、サイズとフォーマットがどれだけ変化するかに関係しています。 x86 IA32(インテル32ビット)アーキテクチャー、例えばCISCを採用してください。命令のサイズは1〜12バイトの範囲であり、そのフォーマットも大きく異なります(フォーマットは、各フィールドに使用されるビット数、これらのビットの位置など)。

これは、命令のデコードを開始した時点で命令をフェッチしたときだけ知ることを意味します。いくつかの命令はフェッチされるだけのサイクルを要し、他の命令はパイプライン処理を複雑にする。

一方、すべてのARM命令(RISCアーキテクチャ)は、正確に4バイトです。したがって、4バイトをフェッチすると、パイプラインのデコードフェーズでこれらのバイトを送信できることがわかります。すぐに次の命令のフェッチを開始できます。

1

これが意味するのは、CISCアーキテクチャでは、RISCよりも比較的長い命令があります。スケジューリングが手間がかかります。 CISCでは、よりシンプルな命令と、より複雑な命令が混在することがよくあります。したがって、パイプラインでは、ハザードと呼ばれるものがあり、スムーズなパイプライニングに問題を引き起こす可能性があります。 X86浮動小数点命令は、たとえばx86のロードまたはストアより長くなります。

+0

CISCではパイプラインの危険性が増していると言っています。 – Celeritas

+0

はい、あなたの命令セットがより規則的または類似しているほど、スケジュール設定が容易になります。指示は、長さだけでなく、複雑さによっても変わります。 – BillH

+0

「スケジューリング」とは何ですか? – Celeritas

関連する問題