1
คำแนะนำ x86 ต้องการการเข้ารหัสของตัวเองรวมถึงข้อโต้แย้งทั้งหมดของพวกเขาที่จะปรากฏในหน่วยความจำในเวลาเดียวกันหรือไม่?
ฉันพยายามที่จะคิดออกว่าเป็นไปได้ในการเรียกใช้ Linux VM ซึ่ง RAM ได้รับการสนับสนุนโดยเพจฟิสิคัลเดียวหรือไม่ หากต้องการจำลองสิ่งนี้ฉันได้แก้ไขตัวจัดการข้อผิดพลาดหน้าซ้อนใน KVM เพื่อลบบิตปัจจุบันออกจากรายการตารางหน้าที่ซ้อนกัน (NPT) ทั้งหมดยกเว้นรายการที่สอดคล้องกับข้อบกพร่องของเพจที่ประมวลผลในปัจจุบัน ในขณะที่พยายามเริ่มต้นแขกลินุกซ์ฉันสังเกตว่าคำแนะนำการประกอบที่ใช้ตัวถูกดำเนินการหน่วยความจำเช่น add [rbp+0x820DDA], ebp นำไปสู่การวนรอบข้อบกพร่องของหน้าจนกว่าฉันจะคืนค่าบิตปัจจุบันสำหรับหน้าที่มีคำสั่งเช่นเดียวกับหน้าอ้างอิงในตัวถูกดำเนินการ (ในตัวอย่างนี้ [rbp+0x820DDA] ) ฉันสงสัยว่าทำไมในกรณีนี้ ซีพียูไม่ควรเข้าถึงหน้าหน่วยความจำตามลำดับหรือไม่เช่นอ่านคำสั่งก่อนจากนั้นจึงเข้าถึงตัวถูกดำเนินการหน่วยความจำ หรือ x86 ต้องการหน้าคำสั่งเช่นเดียวกับหน้าตัวถูกดำเนินการทั้งหมดในเวลาเดียวกันหรือไม่? ฉันกำลังทดสอบกับ AMD Zen 1