命令パイプラインとは

プロセッサ命令には、その操作に複数の段階があります。これらの各ステージは、完了するまでに 1 つの CPU サイクルを要します。これらのステージは、命令フェッチ、命令デコード、実行、メモリ アクセス、およびライトバックです。これらはそれぞれ、完了する必要がある命令を取得し、操作を操作対象の値から分離し、プロセスを実行し、結果が書き込まれるレジスタを開き、開いたレジスタに結果を書き込みます。

ヒストリカル イン オーダー プロセッサ

初期のコンピューターでは、CPU は命令パイプラインを使用していませんでした。これらの CPU では、すべての命令に対して各シングル サイクル操作を実行する必要がありました。これは、平均的な命令が完全に処理されてから次の命令が開始されるまでに 5 クロック サイクルかかることを意味していました。一部の操作では、結果をレジスタに書き込む必要がない場合があります。つまり、メモリ アクセスとライトバックの段階をスキップできます。

命令パイプラインとは

パイプラインのないサブスカラー プロセッサでは、各命令の各部分が順番に実行されます。

ただし、次の命令に進む前に完全な命令を順番に実行すると、問題が潜んでいます。問題はキャッシュミスです。CPU は、アクティブに処理しているデータをレジスタに格納します。これは、1 サイクルのレイテンシでアクセスできます。問題は、レジスタがプロセッサ コアに組み込まれているため小さいことです。データがまだロードされていない場合、CPU はより大きく低速な L1 キャッシュに移動する必要があります。そこにない場合は、より大きくて低速な L2 キャッシュに再度移動する必要があります。次のステップは L3 キャッシュです。最後のオプションはシステム RAM です。これらの各オプションのチェック��は、ますます多くの CPU サイクルが必要になります。

現在、この余分に追加されたレイテンシは、次の命令を開始する前に各命令を順番に完全に完了する必要があるシステムでは大きな問題になる可能性があります。命令プロセッサごとに 5 サイクルだったものは、1 つの命令で数十または数百のクロック サイクルにわたって突然ハングアップする可能性があります。その間ずっと、コンピュータ上で他に何もできません。技術的には、これは 2 つの独立したコアを持つことで多少軽減できます。ただし、両者が同じことを、場合によっては同時に行うことを妨げるものは何もありません。そのため、マルチコア ルートを下っても、これは修正されません。

従来の RISC パイプライン

RISC は、Reduced Instruction Set Computer の略です。これは、各命令のデコードを容易にすることでパフォーマンスを最適化するプロセッサ設計のスタイルです。これは、より複雑な命令セットを設計して同じタスクを実行するために必要な命令を少なくする CISC または複合命令セット コンピューターと比較したものです。

従来の RISC 設計には、命令パイプラインが含まれています。任意のサイクルで 5 つの命令ステージのいずれかを実行する代わりに、パイプラインでは 5 つのステージすべてを実行できます。もちろん、1 つの命令の 5 つのステージすべてを 1 サイクルで実行することはできません。ただし、それぞれ 1 ステージのオフセットで 5 つの連続する命令をキューに入れることができます。このようにして、新しい命令を各クロック サイクルで完了することができます。コアの複雑さの増加が比較的少ないため、パフォーマンスが 5 倍向上する可能性があります。

命令パイプラインとは

スカラー パイプライン プロセッサでは、命令実行の各ステージをクロック サイクルごとに 1 回実行できます。これにより、サイクルごとに 1 つの命令が完了する最大スループットが可能になります。

パイプラインを持たないプロセッサは、サイクルごとに 1 つの完全な命令を実行できないため、サブスカラーにしかできません。この主要な 5 ステージ パイプラインを使用すると、すべてのプロセスの命令を完了することができるスカラー CPU を作成できます。さらに広範囲に及ぶパイプラインを作成することで、クロック サイクルごとに複数の命令を実行できるスーパースカラー CPU を作成できます。もちろん、潜在的な問題はまだあります。

まだシーケンシャル

これは、さまざまなレベルのキャッシュと RAM を照会する必要がある場合に、応答を何サイクルも待機するという問題を解決するものではありません。また、新たな問題が発生します。ある命令が前の命令の出力に依存している場合はどうなるでしょうか? これらの問題は、高度なディスパッチャーによって個別に解決されます。別の命令の出力に依存する命令が近づきすぎないように、実行順序を慎重に計画します。また、キャッシュ ミスを処理するために、命令を保留し、パイプライン内で実行準備ができていてその結果を必要としない他の命令に置き換え、準備ができたら命令を再開します。

これらのソリューションは、パイプライン化されていないプロセッサでも機能しますが、クロックごとに複数の命令を実行するスーパースカラー プロセッサに必要です。分岐予測子は、複数の潜在的な結果を持つ命令の結果を予測しようとし、別の方法で証明されない限り、それが正しいと仮定し続けることができるため、非常に便利です。

結論

パイプラインを使用すると、プロセッサの個別の機能をすべてサイクルごとに使用できます。これは、異なる命令の異なるステージを同時に実行することによって行われます。これにより、CPU 設計が複雑になることはありません。また、複数の命令がサイクルごとに 1 つのステージを実行できるようにします。



Leave a Comment

Powerbeats Proがケースで充電できない場合の対処法

Powerbeats Proがケースで充電できない場合の対処法

Powerbeats Proが充電できない場合、別の電源を使用し、イヤフォンを清掃してください。充電中はケースを開いたままにしてください。

3Dプリントの基本:必見のメンテナンスチェックリスト

3Dプリントの基本:必見のメンテナンスチェックリスト

設備を良好な状態に保つことは必須です。ここでは、3Dプリンターを最良の状態に保つための役立つヒントをご紹介します。

キヤノン Pixma MG5220: インクなしでスキャンする方法

キヤノン Pixma MG5220: インクなしでスキャンする方法

インクが切れた場合にキヤノン Pixma MG5220でスキャンを有効にする方法。

ノートパソコンが過熱する5つの理由

ノートパソコンが過熱する5つの理由

ノートパソコンが過熱する可能性のある理由と、この問題を回避してデバイスを冷却するためのヒントやコツを見つけましょう。

GeForce Now エラーコード 0xC272008F 修正方法

GeForce Now エラーコード 0xC272008F 修正方法

ゲームを楽しむ準備が整い、『Star Wars Outlaws』をGeForce Nowでプレイしようとすると、エラーコード0xC272008Fが発生。Ubisoftゲームを再び遊ぶための唯一の解決策を見つけましょう。

3Dプリンティングの基本:3Dプリンターのメンテナンステクニック

3Dプリンティングの基本:3Dプリンターのメンテナンステクニック

3Dプリンターを維持することは、最高の結果を得るために非常に重要です。念頭に置くべき重要なヒントをご紹介します。

プリンターのIPアドレスを見つける方法

プリンターのIPアドレスを見つける方法

プリンターの使用しているIPアドレスがわからなくて困っていますか?その情報を見つける方法をお教えします。

Samsungの電話でAirPodsを使用する方法

Samsungの電話でAirPodsを使用する方法

Samsungの電話用にAirPodsを購入するかどうか迷っているなら、このガイドが役立ちます。もっとも明白な質問は、両者が互換性があるかどうかです。

修正:ChromebookがBluetoothデバイスに接続しない

修正:ChromebookがBluetoothデバイスに接続しない

BluetoothデバイスをChromebookとペアリングできない場合は、Bluetoothオプションを無効にして、ラップトップを再起動します。

ダブルVPNとは何ですか?シングルVPNよりどれだけ優れていますか?

ダブルVPNとは何ですか?シングルVPNよりどれだけ優れていますか?

ダブルVPNは、ネットワークの使用状況を監視している人からユーザーを保護するための優れた解決策です。