มีการเปลี่ยนแปลงใด ๆ ที่ทำให้ซีพียูทำงานได้ดีขึ้นสำหรับรันไทม์ที่เกิดขึ้นพร้อมกันเช่น Rust หรือไม่? ตัวอย่างเช่นมีการเปลี่ยนแปลงการนำไปใช้การทำนายสาขาหรือขนาดแคชที่จะช่วยรันไทม์พร้อมกันหรือไม่
ฉันรู้สึกว่าการออกแบบ CPU ในปัจจุบันอาจได้รับการปรับให้เหมาะสมยิ่งขึ้นสำหรับ runtimes แบบโพรซีเดอร์เช่น C หากเราต้องการปรับให้เหมาะสมสำหรับ runtimes ที่เกิดขึ้นพร้อมกัน CPU จะดูแตกต่างกันอย่างไร
สำหรับ isntance การคาดคะเนสาขาถูกนำมาใช้บนพื้นฐานของการสรุปทั่วไปในเอกสารงานวิจัยที่วิเคราะห์รหัสขั้นตอน ฉันสงสัยว่าสิ่งที่เป็นนามธรรมที่เกิดขึ้นพร้อมกันจะเพิ่มชุดการทำงานที่สำคัญให้กับรันไทม์ที่ส่งผลเสียต่ออัลกอริทึมการทำนายสาขาที่มีอยู่หรือไม่ ตัวอย่างเช่นการคาดการณ์ใน for for loop เป็นสิ่งหนึ่ง แต่เมื่อเป้าหมายของสาขาเป็นส่วนใหม่ของหน่วยความจำเสมอ (กราฟิก, ข้อความ, ฯลฯ ) มันจะเป็นแคชที่พลาดเสมอและจะไม่มีสาขา ประวัติศาสตร์สำหรับมัน - เพราะยังไม่ได้แตะต้องเลย
นี่อาจเป็นคำถามที่งี่เง่าเพราะเนื้อหาแม้ว่ามันอาจจะอยู่ใน RAM เสมอ แต่จะถูกแยกเป็นลำดับความสำคัญน้อยกว่าที่จะใช้ (เมื่อโหลดไปยังแคช) ... แต่ยังมี ควรเป็นขอบเขตชั่วคราวที่สามารถสังเกตได้กับบริบทที่เก็บไว้ในแคชและตัวทำนายสาขาในรันไทม์ของขั้นตอนซึ่งจะแสดงให้เห็นว่าเป็นนามธรรม - ขอบเขตในสภาพแวดล้อมที่ขนานกันมากขึ้น ดังนั้นฉันสงสัย ... มีการปฏิบัติตามขอบเขตเหล่านี้หรือไม่? มีงานวิจัยใดบ้างที่วิเคราะห์สิ่งนี้?
สถาปัตยกรรมของ CPU มีอคติต่อโค้ดโพรซีเดอร์มากกว่าโค้ดที่เกิดขึ้นพร้อมกันหรือไม่ หรือซีพียูรุ่นใหม่มีจุดประสงค์ทั่วไปที่เพียงพอซึ่งภาษาที่เกิดขึ้นพร้อมกันสูงไม่ประสบ