lfetch
指令型別 M
格式
(qp) lfetch.lftype.lfhint [r3] no_base_update_form
(qp) lfetch.lftype.lfhint [r3], r2 reg_base_update_form
(qp) lfetch.lftype.lfhint [r3], imm9 imm_base_update_form
(qp) lfetch.lftype.excl.lfhint [r3] no_base_update_form, exclusive_form
(qp) lfetch.lftype.excl.lfhint [r3], r2 reg_base_update_form, exclusive_form
(qp) lfetch.lftype.excl.lfhint [r3], imm9 imm_base_update_form, exclusive_form
說明
包含 GR r3 的值指定的地址的快取線移動到數據記憶體層次結構的最高級別。 lfhint 修正符的值指定記憶體訪問的區域性。
讀取記憶體的行為也由與訪問的頁關聯的記憶體屬性確定。快取線大小取決於具體實現的版本,但必須大於或等於 32 位元組加上二的冪。在獨佔形式中,快取線允許標記為獨佔狀態。程式預計不久修改該快取線中的位置時,會使用此限定符。如果包含快取線的頁面的記憶體屬性不是可快取,則不作引用。
lftype 完成符指定指令是否觸發通常與常規載入關聯的錯誤。
在基址更新形式中,用於確定記憶體地址之後,GR r3 中的值會加上 imm9(在 imm_base_update_form 中)或是 GR r2(在 reg_base_update_form 中)中經過符號擴充套件的值。在 reg_base_update_form 中,如果設定 GR r2 對應的 NaT 位,則 GR r3 對應的 NaT 也會設定為 1 - 不會觸發任何錯誤。
在 reg_base_update_form 與 the imm_base_update_form 中,如果 GR r3 對應的 NaT 位被清除,則遞增之後 GR r3 中的值指定的地址將充當預取指定的快取線的提示。此預取操作使用 lfhint 指定的區域性提示。預取提示不影響程式功能,不觸發任何錯誤,在具體實現的版本中可能會被忽略。
在 no_base_update_form 中,GR r3 中的值不會修改,並且不暗示任何預取提示。
如果設定 GR r3 對應的 NaT 位,則記憶體狀態不受影響。在 reg_base_update_form 與 imm_base_update_form 中,會執行 GR r3 的之後遞增,並按以上所述提示預取。
對未使用的地址執行致錯型 lfetch,將導致“未使用的數據地址”錯誤。對未使用的地址執行非致錯型 lfetch 時,不執行任何錯誤處理,並且不發出預取請求,但如果有指定,它將執行暫存器之後遞增。
lfetch 指令同硬體預取一樣,都不是需要確定順序的操作,也就是說,它們的順序同之前或之後的記憶體操作無關。