キャッシュミスが発生した場合、データはメインメモリから直接レジスタに移動されるか、最初にキャッシュに移動されて登録されますか?メインメモリとレジスタを直接接続する方法はありますか?キャッシュミスが発生した場合、データは直接レジスタに移動されるか、最初にキャッシュに移動して登録されますか?
答えて
私はキャッシュミスロードがキャッシュラインが外部キャッシュから到着した後にL1ロード使用待ち時間を待たなければならないかどうか尋ねていると思います。すなわち、ラインがL1に書き込まれるのを待ってから、負荷を正常に再試行する。
高性能CPUがそのように動作しないことはほぼ確実です。 L2ヒットのレイテンシは多くのワークロードにとって重要です。ロードを再開するタイミングを知るためには、受信キャッシュラインを追跡するロードバッファが必要です。だからあなたは、キャッシュに書き込むのと並行して、入ってくるデータを取り込むだけです。 TLBチェックは、外部キャッシュに送信する物理アドレスの生成の一部としてすでに実行されていました。
ほとんどの実際のCPUは、待機中のワード/バイトが到着するとすぐにパイプラインを再開できるようにする早期再開デザインを使用するため、残りのキャッシュラインはバックグラウンドで転送されます。
さらに最適化が重要です。これは、必要なワードから開始して送信されるキャッシュラインを要求します。そのため、キャッシュラインの途中のワードのデマンドミスがそのワードを最初に受け取ることができます。私は、現代のDDR DRAMは、指定された64ビットのチャンクで64バイトバーストを開始し、メインメモリから読み込むときにこれをサポートしていると思います。私は100%の近代的なCPUがこれを使用しているとは確信していません。アウト・オブ・オーダー実行が同じラインに対する複数の未処理ミスを許容する場合、おそらくそれはより複雑になる。
早期再起動とクリティカルワードファーストのいくつかの説明については、which is optimal a bigger block cache size or a smaller one?を参照してください。
メインメモリとレジスタを接続する直接的な方法はありますか?
「直接」とは何かを意味します。最新の高性能CPUでは、2〜3層のキャッシュと、複数のコアのメモリへのアクセスを調停する独自のバッファリングを備えたメモリコントローラが存在します。そうではありません。
特別なキャッシュバイパス負荷とストア命令を備えたシンプルなシングルコアCPUを設計する場合は、確実に実行してください。または、早期再起動を「直接」と考えている場合は、それはすでに発生しています。
ストアの場合、x86およびその他のアーキテクチャではキャッシュバイパスストアがありますが、x86のMOVNT命令はレジスタをメモリに直接接続しません。店舗はラインフィルバッファーに入ります。ラインバッファーはいっぱいになるとフラッシュされ、ライトコンバイニングを行います。
キャッシュ不可能なメモリ領域もあります。キャッシュ不可能なメモリへのロードまたはストアはアーキテクチャ的に「直接的」ですが、実際にはマイクロアーキテクチャではロード/ストア実行ユニットからL1Dが使用するのと同じメカニズムメモリコントローラに話してください。
ありがとうございます! – peasantspring
- 1. ブロックされたIPにデータベース移動が発生しましたか?
- 2. 発射体を最初からゲームに移動させる
- 3. すべての列に「完了」と表示されている場合はsheet2に移動し、それ以外の場合はsheet3に移動します
- 4. テキストフィールドからテキストフィールドに直接移動するとUITableViewが移動しない
- 5. 対角線移動なしに最後に押された方向に移動
- 6. ListViewは最後の項目に直接移動します
- 7. DMA以外のシナリオでは、ディスク読み取り中にストレージデバイス/ディスクの内容が最初にCPUレジスタに移動してからメインメモリに移動しますか?
- 8. 右に最初に表示された後にポップアップボックスが下に移動する
- 9. 自動生成されたカスタムXAMLパスを左上に移動しますか?
- 10. 黒汚れ、私はナビゲーションコントローラに接続されているページ間をタブ移動していた場合
- 11. ページ(ハッシュ)リンクで、最初に表示される要素に移動します
- 12. アクティビティの前に移動して次のアクティビティに移動するときにエラーが発生しました
- 13. 配列内のオブジェクトを移動/移動して最初の要素を最後のインデックスに移動します
- 14. Seleniumは生産性追跡ソフトウェアでキーストロークを登録し、移動を移動しますか?
- 15. エラーが発生した場合、Powershell foreachは次へ移動します
- 16. リンクされたリストからキューにデータを移動する[c]
- 17. Subversion SVN:リポジトリが移動されましたリポジトリが永続的にXXXに移動しました
- 18. iOSファイルの入力を直接カメラアプリに移動しますか?
- 19. 条件が満たされている場合、別のビューに移動...
- 20. rust:インデックスに登録されたコンテキストから移動することはできません
- 21. Facebook登録 - skipアプリケーションに移動
- 22. PHPセッションが最初に登録されていません
- 23. アクティビティ間を前後に移動すると、最後にアクティビティがフェッチされたデータが最後にアクティビティがフェッチされたデータで変更されます。
- 24. Symfony 3 | FOSUser接続されている場合はブロックを登録します
- 25. Netbeans 7 - 複数のプロジェクトが登録されている宣言に移動しません
- 26. アップロードされたファイルが別のフォルダに移動していない場合は削除します
- 27. ライブサイトをローカルに移動した後にエラーが発生する
- 28. クエリ内の条件が満たされない場合、mysqlは次の行に移動しますか?
- 29. アレイからレジスタに移動vaule
- 30. 別のHtml.Editorに移動しますが最初に最初の文字を確認してください
「メインメモリから直接登録するように移動した」と言うと、実際には「メインメモリから直接登録し、キャッシュにコピーする」という意味ですか?それ以外の場合は、キャッシュは何ですか?また、キャッシュをバイパスすると、プログラムの速度が遅くなります(ダイレクトメモリアクセスがキャッシュよりも遅いため)。そしてあなたはキャッシュをバイパスしたい理由を詳しく述べることができますか?解決したい*実際の問題は何ですか?ユースケースとは何ですか? –
http://idownvotedbecau.se/beingunresponsive –
@Someprogrammerdude Iは回路上で、データをキャッシュに入れたときと同じ時間にレジスタに入れているということですか?私はデータがキャッシュ(LLC、L2、L1)に入れられることを知っていますが、データをキャッシュに置いてレジスタにデータを置くことの間にシーケンスがありますか? – peasantspring