คอร์ใดที่ตรงกับ "CPU" แต่ละอันด้านล่าง?
สมมติว่าเรามี Core 1, 2, 3 และ 4, CPU4 และ CPU5 เป็นตัวแทนของ core 3
ทำ (พูด) CPU 6 และ CPU 7 ด้านล่างแสดงถึงหนึ่งคอร์หรือไม่ HT และแกนที่แท้จริง?
ไม่มีความแตกต่างระหว่างทั้งสอง - พวกเขาทั้งสองมีส่วนต่อประสานฮาร์ดแวร์ทางกายภาพกับ CPU ส่วนต่อประสานแบบลอจิคัลถูกนำไปใช้ในฮาร์ดแวร์ (ดูแผ่นข้อมูลตัวประมวลผล Intel Core, เล่ม 1สำหรับรายละเอียดเพิ่มเติม) โดยทั่วไปแต่ละคอร์มีหน่วยการดำเนินการแยกกันสองหน่วย แต่จะแบ่งใช้ทรัพยากรทั่วไประหว่างหน่วยเหล่านั้น นี่คือเหตุผลที่ในบางกรณีการทำไฮเปอร์เธรดสามารถลดประสิทธิภาพได้จริง
ตัวอย่างเช่นหาก CPU 6 แสดงถึงแกนประมวลผลจริงและ CPU 7 เป็นแกน HT จะมีการกำหนดเธรดให้กับเพียงแค่ CPU7 เท่านั้นที่เหลือทรัพยากรของแกนหลักจริงหรือไม่ (สมมติว่าแกนกำลังทำงานอื่น ๆ )
ดูด้านบน. เธรดที่กำหนดให้กับเฉพาะ CPU6 หรือเฉพาะ CPU7 จะดำเนินการด้วยความเร็วเท่ากัน (สมมติว่าเธรดทำงานได้เหมือนกันและแกนประมวลผลอื่น ๆ ในโปรเซสเซอร์ไม่ทำงาน) Windows รู้เกี่ยวกับโปรเซสเซอร์ที่เปิดใช้งาน HT และตัวกำหนดตารางเวลาจะคำนึงถึงสิ่งเหล่านี้
ไฮเปอร์เธรดถูกจัดการทั้งหมดภายในโปรเซสเซอร์หรือไม่ ถ้าเป็นเช่นนั้นจะอยู่ที่ขอบเขต CPU หรือขอบเขตหลักหรือไม่ ตัวอย่าง: หาก CPU 6 และ 7 แสดงถึงหนึ่งคอร์มันไม่สำคัญว่ากระบวนการจะถูกกำหนดให้เพราะ CPU จะกำหนดทรัพยากรให้เหมาะสมกับเธรดที่กำลังทำงานหรือไม่
ทั้งสอง ฮาร์ดแวร์ที่แท้จริงนั้นไม่ได้กำหนดเวลาคอร์ใด ๆ ที่จะเรียกใช้โปรแกรมซึ่งเป็นงานของระบบปฏิบัติการ อย่างไรก็ตามซีพียูเองมีหน้าที่รับผิดชอบในการแบ่งปันทรัพยากรระหว่างหน่วยปฏิบัติจริงและ Intel สั่งให้คุณเขียนโค้ดเพื่อให้มีประสิทธิภาพมากที่สุดเท่าที่จะเป็นไปได้
ฉันสังเกตเห็นว่ากระบวนการแบบเธรดเดี่ยวที่ใช้เวลานานจะถูกเด้งรอบแกนประมวลผลค่อนข้างน้อยอย่างน้อยตามตัวจัดการงาน นี่หมายความว่าการกำหนดกระบวนการให้กับแกนหลักเดียวจะปรับปรุงประสิทธิภาพได้เล็กน้อย (โดยหลีกเลี่ยงการสลับบริบทและการทำให้แคชใช้ไม่ได้เป็นต้น) ถ้าเป็นเช่นนั้นฉันจะรู้ได้หรือไม่ว่าฉันไม่ได้กำหนดให้ "แค่แกนหลักเสมือน"
นั่นคือพฤติกรรมปกติและไม่การกำหนดให้กับแกนหลักเดียวจะไม่ปรับปรุงประสิทธิภาพ ดังที่กล่าวไว้หากด้วยเหตุผลบางอย่างที่คุณต้องการให้แน่ใจว่ามีการดำเนินการกระบวนการเดียวบนแกนหลักทางกายภาพเดียวให้กำหนดให้กับตัวประมวลผลเชิงตรรกะเดียว
เหตุผลที่กระบวนการ "ตีกลับไปรอบ ๆ " เป็นเพราะกระบวนการจัดตารางเวลา นี่เป็นพฤติกรรมปกติและคุณจะพบกับประสิทธิภาพที่ลดลงโดยการ จำกัด กระบวนการที่คอร์สามารถดำเนินการได้ (ไม่ว่าจะมีเธรดจำนวนเท่าใด) เนื่องจากตัวจัดกำหนดการกระบวนการต้องทำงานหนักขึ้นเพื่อให้ทุกอย่างทำงานได้ด้วยข้อ จำกัด ที่กำหนด ใช่การลงโทษนี้อาจเล็กน้อยในกรณีส่วนใหญ่ แต่บรรทัดล่างคือถ้าคุณไม่มีเหตุผลที่จะทำเช่นนี้ไม่ได้ !