การเปลี่ยนแปลงของ Intel สู่การออกแบบ CPU แบบ hybrid ได้สร้างปริศนาที่ซับซ้อนสำหรับนักพัฒนาระบบปฏิบัติการ ตั้งแต่การเปิดตัวโปรเซสเซอร์ Alder Lake Intel ได้ทำให้เกือบเป็นไปไม่ได้ที่จะซื้อชิปสำหรับผู้บริโภคที่ไม่มีทั้ง Performance (P) cores และ Efficiency (E) cores แม้ว่าสถาปัตยกรรมนี้จะสัญญาว่าจะให้ประสิทธิภาพและประสิทธิภาพการใช้พลังงานที่ดีขึ้น แต่ก็ได้นำมาซึ่งความท้าทายที่สำคัญสำหรับการจัดตารางงานที่ระบบปฏิบัติการยังคงพยายามแก้ไข
ไทม์ไลน์ CPU แบบไฮบริดของ Intel
- 2011: ARM เปิดตัวสถาปัตยกรรม big.LITTLE
- 2020: Intel ปล่อย Lakefield (มีจำหน่ายจำกัด)
- 2021: Intel เปิดตัว Alder Lake พร้อมการนำ P+E core มาใช้อย่างแพร่หลาย
- 2023: Intel เปิดตัว Meteor Lake พร้อม LP-E (Low Power Efficiency) cores
ความซับซ้อนของการเลือก Core ที่เหมาะสม
ความท้าทายพื้นฐานอยู่ที่การตัดสินใจว่า core ไหนควรจัดการงานไหน ต่างจาก CPU แบบดั้งเดิมที่ core ทั้งหมดมีความสามารถเท่าเทียมกัน สถาปัตยกรรม hybrid บังคับให้ตัวจัดตารางงานต้องตัดสินใจที่ซับซ้อน งานที่มีอายุสั้นควรไปที่ P-core เพื่อให้เสร็จเร็ว หรือ E-core จะเพียงพอ? คำตอบไม่ตรงไปตรงมา เนื่องจากการอภิปรายในชุมชนเผยให้เห็นลักษณะที่ละเอียดอ่อนของการตัดสินใจเหล่านี้
แม้เมื่อแล็ปท็อปทำงานด้วยแบตเตอรี่ การใช้ E-cores เป็นค่าเริ่มต้นก็ไม่ใช่สิ่งที่เหมาะสมเสมอไป งานบางอย่างมีความไวต่อ latency และต้องการการตอบสนองทันทีที่เฉพาะ P-cores เท่านั้นที่สามารถให้ได้ ในขณะเดียวกัน งานที่ทำงานเป็นเวลานานซึ่งดูเหมือนจะเหมาะสำหรับ E-cores อาจได้ประโยชน์จากการเร่งความเร็วของ P-core เพื่อให้เสร็จเร็วขึ้นและประหยัดพลังงานโดยรวม
การจัดการพลังงานกลายเป็นเรื่องซับซ้อนมากขึ้น
แนวทางดั้งเดิมของการใช้ระดับ nice ของ CPU - คุณสมบัติของ Unix ที่ให้ผู้ใช้กำหนดลำดับความสำคัญของงาน - ไม่สามารถนำมาใช้กับสถาปัตยกรรม hybrid ได้ดี แม้ว่าบางคนจะแนะนำให้ใช้ระดับ nice เพื่อกำหนดการมอบหมาย core แต่แนวทางนี้มีข้อจำกัด มันจะป้องกันสถานการณ์เช่น ทำงานบน Performance cores แต่ยอมให้กระบวนการอื่นๆ ได้เร็ว ซึ่งอาจเป็นสิ่งที่แอปพลิเคชันบางตัวต้องการ
ข้อจำกัดด้านความร้อนเพิ่มความซับซ้อนอีกชั้นหนึ่ง แม้เมื่อเสียบกับไฟ AC P-cores ก็สามารถใช้งบประมาณพลังงานที่มีอยู่อย่างรวดเร็วและสร้างความร้อนมากเกินไป ซึ่งหมายความว่าแม้แต่งานที่มีลำดับความสำคัญสูงอาจได้ประโยชน์จากการใช้ E-core อย่างมีกลยุทธ์เพื่อรักษาประสิทธิภาพที่ยั่งยืนโดยไม่มี thermal throttling
วิธีการตรวจจับประเภทของ Core
- P vs E cores: คำสั่ง CPUID leaf (0x1a)
- LP-E cores: ไม่มีวิธีการตรวจจับที่รองรับความเข้ากันได้ในอนาคต
- Thread Director: องค์ประกอบฮาร์ดแวร์ที่ให้ข้อมูลป้อนกลับเกี่ยวกับประสิทธิภาพแบบเรียลไทม์
ปัญหาความยุติธรรม
หนึ่งในแง่มุมที่ท้าทายที่สุดเกี่ยวข้องกับการรักษาความยุติธรรมระหว่างงาน ตัวจัดตารางงานแบบดั้งเดิมรับประกันการเข้าถึงทรัพยากร CPU อย่างเท่าเทียมกันโดยให้เวลาการทำงานเท่ากันกับงานทั้งหมด อย่างไรก็ตาม บนสถาปัตยกรรม hybrid เวลาที่เท่ากันไม่ได้หมายถึงพลังการคำนวณที่เท่ากัน งานที่ทำงานบน P-core จะทำงานได้มากกว่าในช่วงเวลาเดียวกันเมื่อเปรียบเทียบกับงานที่ทำงานบน E-core
สิ่งนี้สร้างปัญหาพื้นฐาน: คุณจะรับประกันการจัดสรรทรัพยากรอย่างยุติธรรมได้อย่างไรเมื่อทรัพยากรเองไม่เท่าเทียมกันโดยธรรมชาติ? โซลูชันที่เสนอของ FreeBSD เกี่ยวข้องกับการคำนวณ virtual runtime ที่คำนึงถึงความแตกต่างของประสิทธิภาพระหว่างประเภท core แต่สิ่งนี้แสดงถึงการเบี่ยงเบนที่สำคัญจากแนวทางการจัดตารางงานปัจจุบัน
การควบคุมของผู้ใช้ เทียบกับ การจัดการอัตโนมัติ
การถกเถียงขยายไปถึงว่าผู้ใช้ควรมีการควบคุมการมอบหมาย core มากแค่ไหน ผู้ใช้บางคนต้องการการควบคุมโดยตรงว่า core ไหนจัดการงานสำคัญของพวกเขา โดยเฉพาะในสถานการณ์ที่อายุแบตเตอรี่หรือความต้องการประสิทธิภาพเป็นสิ่งสำคัญ อย่างไรก็ตาม ระบบโดยทั่วไปจะตัดสินใจเรื่องการจัดตารางงานหลายพันครั้งต่อวินาที ทำให้การแทรกแซงด้วยตนเองไม่สามารถทำได้จริงในสถานการณ์ส่วนใหญ่
คอมพิวเตอร์ไม่สามารถรู้เกี่ยวกับกรณีเหล่านี้ได้
สิ่งนี้เน้นย้ำถึงความตึงเครียดระหว่างการเพิ่มประสิทธิภาพอัตโนมัติและเจตนาของผู้ใช้ แม้ว่าระบบปฏิบัติการสามารถคาดเดาอย่างมีการศึกษาเกี่ยวกับความต้องการของงาน แต่พวกมันขาดบริบทที่ผู้ใช้มีเกี่ยวกับความต้องการและลำดับความสำคัญในทันที
นโยบายการจัดตารางงานที่เสนอ
- ประสิทธิภาพสูงสุด (0): จัดลำดับความสำคัญให้กับ P-cores เปิดใช้งานทุกคอร์เมื่อเป็นไปได้
- มาตราส่วนประสิทธิภาพ (0-100): อัตราส่วนที่ปรับแต่งได้ระหว่างประสิทธิภาพและความประหยัดพลังงาน
- ประสิทธิภาพพลังงานสูงสุด (100): รันเธรดเฉพาะบน E-cores หรือคอร์ที่มีประสิทธิภาพพลังงานสูงสุดที่มีอยู่
มองไปข้างหน้า
ขณะที่ FreeBSD และระบบปฏิบัติการอื่นๆ ทำงานเพื่อแก้ไขความท้าทายเหล่านี้ โซลูชันจะเกี่ยวข้องกับการผสมผสานของการตรวจจับอัตโนมัติที่ปรับปรุงแล้ว นโยบายที่ผู้ใช้สามารถกำหนดค่าได้ และคำแนะนำระดับแอปพลิเคชัน เทคโนโลยี Thread Director ของ Intel ซึ่งให้ข้อมูลป้อนกลับแบบเรียลไทม์เกี่ยวกับลักษณะงานและประสิทธิภาพ core เสนอเส้นทางหนึ่งไปข้างหน้า
สถาปัตยกรรม hybrid CPU แสดงถึงการเปลี่ยนแปลงที่สำคัญในการคำนวณ แต่ระบบนิเวศซอฟต์แวร์ยังคงตามให้ทัน จนกว่าระบบปฏิบัติการจะปรับตัวให้เข้ากับความเป็นจริงใหม่เหล่านี้อย่างเต็มที่ ผู้ใช้อาจยังคงประสบกับประสิทธิภาพที่ไม่สม่ำเสมอซึ่งทำให้นักพัฒนาบางคนสงสัยในแนวทาง hybrid ความสำเร็จของสถาปัตยกรรมนี้จะขึ้นอยู่กับว่าซอฟต์แวร์สามารถใช้ประโยชน์จากศักยภาพของการมี core ประเภทต่างๆ ทำงานร่วมกันอย่างมีประสิทธิภาพได้ดีแค่ไหน
อ้างอิง: Scheduling on Hybrid CPUs