ในบริบทของคู่มือนักพัฒนาซอฟต์แวร์สถาปัตยกรรม Intel® 64 และ IA-32 ฉันต้องการทราบว่าคำว่า "คำใบ้" หมายถึงอะไร
ฉันเห็นมันในบางส่วน:
ในคำอธิบายของ
PREFETCHWT1
-ดึงคำใบ้ T1 ล่วงหน้าโดยมีเจตนาที่จะเขียนในการแนะนำ SSE4 โดยกล่าวว่า "เทคโนโลยียังให้คำแนะนำที่สามารถปรับปรุงปริมาณงานหน่วยความจำเมื่ออ่านจากประเภทหน่วยความจำ WC ที่ไม่สามารถแคชได้" ซึ่งทำให้ฉันพบคำตอบที่เขียนได้ดีนี้ เกี่ยวกับหน่วยความจำ WC
ต่อไป ฉันอ่านคำสั่ง SSE4 ข้อใดข้อหนึ่งสามารถดำเนินการโหลดด้วยคำใบ้ "สตรีมมิ่ง" สิ่งนี้นำฉันไปสู่ ข้อมูลอ้างอิงการเขียนโปรแกรม SSE4 ที่ฉันค้นพบคำแนะนำอาจเป็นแบบชั่วคราวหรือไม่ชั่วคราวก็ได้
คำแนะนำคำแนะนำการโหลดสตรีมมิ่งนั้นเอง
MOVNTDQA
"ให้คำแนะนำที่ไม่ชั่วคราว"นอกจากนี้ในคู่มือนี้ ฉันพบว่า Transactional Synchronization Extensions(TSX) ใช้ "คำนำหน้าคำใบ้" ใน
XACQUIRE
และXRELEASE
ในส่วน AVX 512 บิต เมื่ออธิบาย
VGATHERPF0DPD
และบริษัท (มีคำสั่งประเภทนี้อีก 7 ประเภท ซึ่งทั้งหมดนี้มาพร้อมกับตัวเลือก /PS) ในสถานการณ์เหล่านี้ เรามีคำใบ้ T0 หรือ T1 โดยใช้ดัชนี dword หรือ qwordเวลาที่ชาญฉลาดที่สุดที่ฉันเห็นคำใบ้ที่ใช้ในคู่มือ (รายการนี้ตามลำดับ) มาในส่วน 10.4.6.1 ที่อ่านว่า
"คำใบ้ที่ไม่ใช่ชั่วคราวจะสั่งให้โปรเซสเซอร์จัดเก็บข้อมูลลงในหน่วยความจำโดยไม่ต้องเขียนข้อมูลลงในลำดับชั้นแคช"
นี่อยู่ในส่วน 'คำแนะนำในการควบคุมแคช' ที่เกี่ยวข้องกับ MOVNTQ
, MOVNTPS
, MASKMOVQ
ดังนั้นคำใบ้ชั่วคราวจะเขียนลงในบรรทัดแคชหรือไม่
ดังนั้นในเวลานี้ ฉันเริ่มรู้สึกว่าฉันเข้าใจคำแนะนำแล้ว ดูเหมือนว่ามันอาจจะเป็น "ตัวชี้พิเศษ" แต่พวกมันก็ถูกเรียกว่าพอยน์เตอร์ บางทีพวกมันอาจเป็นส่วนหนึ่งของพอยน์เตอร์ใช่ไหม? แต่แล้วฉันก็เริ่มสงสัยด้วยซ้ำว่าเมื่อฉันอ่าน คำตอบของ Stack Overflow กับสิ่งที่ตรงกันข้ามกับคำใบ้ คือ. ดูเหมือนว่าคำว่า "คำใบ้" นี้จะใช้ในระดับนามธรรมที่สูงขึ้นตามที่ฉันเห็นใน คำตอบนี้โดยใช้ FreeBSD manpage
หน้า Wikipedia บนบรรทัดแคช ทำให้ฉันสงสัยมากขึ้นเท่านั้น เพราะมันบอกว่าคำแนะนำสามารถเตรียม ทิ้งได้ หรือขับไล่บรรทัดแคช (เรียกอีกอย่างว่าบัฟเฟอร์?) คำแนะนำเป็นเพียงคำแนะนำที่เกี่ยวข้องกับบรรทัดแคชหรือไม่
อย่างที่คุณเห็นฉันสับสน หลงทาง และหวาดกลัว สำหรับคะแนนโบนัสมีใครสามารถอธิบายคำแนะนำโดยใช้การเปรียบเทียบได้หรือไม่
ขอบคุณ
MOVNTDQA
จะเหมือนกับMOVDQA
เว้นแต่จะแจ้งโปรเซสเซอร์ว่าคุณจะไม่นำค่านี้กลับมาใช้ใหม่ นั่นคือคำใบ้ที่ไม่ใช่ชั่วคราว ซีพียูสามารถหลีกเลี่ยงการโหลดข้อมูลลงในแคชได้ (แต่คุณได้ค้นพบสิ่งนั้นแล้ว) นอกจากนี้ยังมีคำใบ้การทำนายสาขาที่จะบอก cpu ว่าคาดว่าจะมีการกระโดดหรือไม่ - person Jester   schedule 30.07.2019MOVNTDQA
ตัวมันเองไม่ใช่คำใบ้ มีฟังก์ชันที่เหมาะสม: ทำการถ่ายโอนข้อมูล คำใบ้เพียงให้ข้อมูลเพิ่มเติมเกี่ยวกับวิธีการที่คุณตั้งใจจะใช้ข้อมูลXACQUIRE/XRELEASE
เป็นคำใบ้ ซึ่งเป็นคำนำหน้าที่ใช้กับคำสั่งอื่น คำแนะนำไม่จำเป็นต้องจัดการกับแคชXACQUIRE
ไม่ได้จัดการกับแคช คำแนะนำสาขาไม่เกี่ยวข้องกับแคช คำแนะนำคือข้อมูลทั่วไปที่คุณสามารถส่งผ่านไปยัง cpu เพื่อให้สามารถทำงานได้ดีขึ้น มันควรจะสามารถทำงานเดิมได้โดยไม่ต้องแจ้งให้ทราบ แต่อาจช้ากว่านั้น - person Jester   schedule 30.07.2019