INVD - 使內部快取失效

操作碼

指令

說明

0F 08

INVD

清除內部快取;啟動外部快取清除。

說明

使處理器的內部快取失效(清除),併發出一個專用匯流排週期,指示外部快取也進行清除。內部快取儲存的數據不寫回主記憶體。

執行此指令之後,處理器不等待外部快取完成清除操作,而是繼續執行指令。快取清除訊號的響應由硬體負責。

INVD 指令是特權指令。處理器在保護模式中執行時,程式或過程的 CPL 必須是 0 才能執行此指令。

謹慎使用此指令。內部快取且未寫回主記憶體的數據可能會丟失。除非有特殊要求或好處,可以清除記憶體而不將修改的快取線寫回記憶體(例如,在測試或錯誤恢復場合,快取與主記憶體的一致性無關緊要),否則軟體應使用 WBINVD 指令。

英特爾(R) 體系結構相容性

INVD 指令取決於具體實現的版本,在將來的“英特爾(R) 體系結構”處理器上,它的功能實現可能會有所不同。早於 Intel486™ 的“英特爾(R) 體系結構”處理器不支援此指令。

操作

Flush(InternalCaches);
SignalFlush(ExternalCaches);
Continue (* Continue execution);

影響的標誌

無。

保護模式異常

#GP(0) - 如果目前特權級別不是 0。

實地址模式異常

無。

虛 8086 模式異常

#GP(0) - INVD 指令無法在虛 8086 模式中執行。