簡単な質問:キャッシュされていないメモリ、つまりページテーブルに非キャッシュとしてマークされているページでLOCK CMPXCHGが可能ですか?非キャッシュメモリのLOCK CMPXCHG?
答えて
この回答の内容は密接に特に私がのQuickPathインターコネクト(QPI)のロックを理解するために相談し、「ロック」セクションには、システムを有効にし、this Dr Dobbs' articleの内容に似ています。
この投稿は「コミュニティウィキ」としてマークされています。
はい、可能です。
8086にはキャッシュがありませんでしたが、perform atomic operationsにアクセスできました。
これは、FSBに#lockシグナルが導入されたことにより達成されました。この信号がアサートされたときには、新しいトランザクションはどのエージェントによっても開始できませんでした。ロックのみが実行されました(実際にはnot even the locking one sometimes)--hereby quiescingシステムです。
キャッシュの導入により、バス・ロックの必要性が軽減されました。プロセッサは、ロックの間、他のエージェントからsnooping requestを遅延させることによってキャッシュを操作できます。
しかし、下位互換性と、保護された変数がspan two cache rowsになる可能性があるため、従来のバスロックは保持されていました。
FSBはQPIの賛成(マルチソケット・システムハブアーキテクチャのとの放棄を考える)に滴下した場合には、#lock信号があまりにも、滴下しました。
ここで、QPIエージェントの1つは、Quiesce Master(QM)として設計されています。プロセッサはロックを必要とするとき、QMに尋ねて、他のエージェント(DMAエージェントを含む)に将来の要求を停止するように通知します。
すべてのエージェントは、QMに対して確認応答を受け取ると、ロック要求者にシステムがロックされていることを通知します。その後、原子操作が実行され、完了すると、要求されたロック解除がQMに提示される。最後に、QMは、新しいトランザクションが再び許可されたことを他のエージェントに通知することに進む。
このようにして、メモリサブシステム全体をロックするためのメカニズムは、現代の設計では依然として存在し、機能しています。
良い答え。 QPIとキャッシングプロトコルの相互作用についての議論は、シングルソケットシステムにも当てはまりますか?それは私には分かりません。議論されているメカニズムの多くは、複数のソケット(QPIがそれらの間のパス)間の一貫性を維持することですが、L3はほとんどがアービターとして機能することができるので、データは、キャッシュの第1の共有レベルであるL3を介して)。私は、ビデオカードやストアのようなDMA対応エージェントについて知らない。たぶん彼らはそれを使うだろうか? – BeeOnRope
@BeeOnRope、正直に分かりません。マイクロソフトの[このドキュメント](http://download.microsoft.com/download/e/b/a/eba1050f-a31d-436b-9281-92cdfeae4b45/pcie_lockedoperations.doc)は、PCIeルートコンプレックスがPCIeバスをロックします。 L3キャッシュ(QMとして動作)によって制御されるか、またはQM自体(QPIを介して接続されたPCIeルートコンプレックス)が制御されている可能性があります。 –
- 1. cmpxchgを使用したx86スピンロック
- 2. デバッガメモリwatch /キャッシュメモリのチェック
- 3. cmpxchgの64ビット整数の例
- 4. C#\ Lock \ lockインスタンスメンバVSロックスタティックメンバ
- 5. Grails 2.4.5キャッシュメモリの静的リソース
- 6. WORDのcmpxchgがBYTEの場合より速い
- 7. Javaとキャッシュメモリ:プリフェッチとアラインメント?
- 8. マルチスレッドプログラムのLock()
- 9. ConcurrentHashMapのlock()メソッド
- 10. Intel命令のLOCKプレフィックス。ポイントは?
- 11. Linux上でCaps Lock、Scroll Lock、Num Lockキーをプログラマチックにオン/オフする方法
- 12. .lockファイルの処理
- 13. CodeIgniterのとLOCKテーブル
- 14. Emacs:font-lockの説明
- 15. nrjavaserialと/ var/lockへのアクセス許可(/ run/lockへのリンク)
- 16. キャッシュメモリと密結合メモリの違い
- 17. wp7の隔離されたストレージとキャッシュメモリ
- 18. TO C#プログラムのキャッシュメモリをクリーニングする
- 19. CPythonとスレッドモジュールLock()
- 20. SQLSERVER-LOCKエラー
- 21. asp.net File.Copy Lock
- 22. Fair Reentrant Lock C++
- 23. ManualResetEventSlimとLock
- 24. Android App Lock
- 25. MKMapView "lock" userTrackingMode
- 26. Emacsでcaps lock、num lock、shiftキーの状態を表示
- 27. FAB with Android lock ring
- 28. Adobe Javascript Signature Lock
- 29. dapper.netはキャッシュメモリを解放します
- 30. イメージダウンロードにキャッシュメモリを使用するには?
なぜですか?私はマニュアルに何も言及していないと言っています。何かあれば、特別に扱われるキャッシュ可能なメモリです。 –
これは可能ですが、遅いです。 – harold
キャッシュコヒーレンシーが簡単だと思います。キャッシュ一貫性を使用すると、コアは、操作が完了するまで、キャッシュラインをキャッシュに保持することができます。 「バス」をロックするよりも現実的な方法は想像できません。 –