คำถามติดแท็ก cpu-architecture

microarchitecture ฮาร์ดแวร์ (x86, x86_64, ARM, ... ) ของ CPU หรือไมโครคอนโทรลเลอร์

6
เหตุใด Intel จึงซ่อนแกน RISC ภายในไว้ในโปรเซสเซอร์
เริ่มต้นด้วย Pentium Pro (P6 microarchitecture) Intel ได้ออกแบบไมโครโปรเซสเซอร์ใหม่และใช้แกน RISC ภายในภายใต้คำแนะนำ CISC แบบเก่า เนื่องจาก Pentium Pro คำสั่ง CISC ทั้งหมดจะถูกแบ่งออกเป็นส่วนย่อย ๆ (uops) จากนั้นดำเนินการโดย RISC core ในตอนแรกเป็นที่ชัดเจนสำหรับฉันว่า Intel ตัดสินใจซ่อนสถาปัตยกรรมภายในใหม่และบังคับให้โปรแกรมเมอร์ใช้ "CISC shell" ด้วยการตัดสินใจนี้ Intel สามารถออกแบบสถาปัตยกรรมไมโครโปรเซสเซอร์ใหม่ทั้งหมดโดยไม่ทำลายความเข้ากันได้จึงสมเหตุสมผล อย่างไรก็ตามฉันไม่เข้าใจสิ่งหนึ่งทำไม Intel ยังคงซ่อนชุดคำสั่ง RISC ภายในไว้เป็นเวลาหลายปี ทำไมพวกเขาไม่ปล่อยให้โปรแกรมเมอร์ใช้คำสั่ง RISC เหมือนกับการใช้ชุดคำสั่ง x86 CISC แบบเก่า หาก Intel รักษาความเข้ากันได้แบบย้อนหลังเป็นเวลานาน (เรายังมีโหมด 8086 เสมือนอยู่ถัดจากโหมด 64 บิต) ทำไมพวกเขาไม่อนุญาตให้เรารวบรวมโปรแกรมดังนั้นพวกเขาจะข้ามคำแนะนำ …

2
อะไรทำให้เกิดความแปรปรวนสูงในรอบนี้สำหรับการวนรอบแบบเรียบง่ายด้วย -O0 แต่ไม่ใช่ -O3 บน Cortex-A72
ฉันใช้การทดลองบางอย่างเพื่อรับรูทีนที่สม่ำเสมออย่างมากสำหรับโค้ดบางส่วน รหัสที่ฉันกำลังจับเวลาเป็นภาระงานที่ค่อนข้าง จำกัด ของ CPU: int cpu_workload_external_O3(){ int x = 0; for(int ind = 0; ind < 12349560; ind++){ x = ((x ^ 0x123) + x * 3) % 123456; } return x; } ฉันได้เขียนโมดูลเคอร์เนลที่ปิดใช้งานการขัดจังหวะจากนั้นเรียกใช้การทดลอง 10 ครั้งของฟังก์ชั่นด้านบนกำหนดเวลาการทดลองแต่ละครั้งโดยรับความแตกต่างในตัวนับรอบนาฬิกาจากก่อนและหลัง สิ่งอื่น ๆ ที่ควรทราบ: เครื่องคือ ARM Cortex-A72 โดยมี 4 ซ็อกเก็ตที่มี 4 คอร์แต่ละอัน (แต่ละอันมีแคช L1 …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.