ตั้งแต่ช่วงกลางดึก ซีพียูเดสก์ท็อปได้นำเสนอคอร์ซีพียูหลายคอร์ในแพ็คเกจเดียว นี่คือโปรเซสเซอร์แบบมัลติคอร์ แม้ว่าการออกแบบในช่วงต้นจะถูกจำกัดไว้ที่คอร์ของ CPU สองหรือสี่คอร์ แต่ซีพียูที่ทันสมัยมีคอร์ทางกายภาพสูงสุด 64 คอร์บนซีพียูตัวเดียว จำนวนคอร์ที่สูงนั้นไม่ใช่มาตรฐานสำหรับซีพียูเดสก์ท็อปและโดยทั่วไปสงวนไว้สำหรับเวิร์กสเตชันหรือเซิร์ฟเวอร์ระดับไฮเอนด์ จำนวนคอร์โดยทั่วไปในซีพียูเดสก์ท็อปสมัยใหม่อยู่ระหว่าง 4 ถึง 16 แต่สิ่งที่เกี่ยวกับซีพียูแบบมัลติคอร์ที่ทำให้พวกเขาโดดเด่นในคอมพิวเตอร์สมัยใหม่คืออะไร?
แกนเดี่ยว
ในอดีต CPU คอร์เดียวถูกจำกัดให้ทำงานเพียงงานเดียวในคราวเดียว นี้มาพร้อมกับช่วงของปัญหาทั้งหมด ตัวอย่างเช่น ในคอมพิวเตอร์สมัยใหม่ มีกระบวนการพื้นหลังจำนวนมากที่ทำงานอยู่ หาก CPU สามารถประมวลผลได้ครั้งละหนึ่งรายการเท่านั้น หมายความว่ากระบวนการพื้นหลังเหล่านี้ต้องใช้เวลาในการประมวลผลห่างจากกระบวนการเบื้องหน้า นอกจากนี้ แคชที่ขาดหายไปหมายความว่าจำเป็นต้องดึงข้อมูลจาก RAM ที่ช้าโดยเปรียบเทียบ ในช่วงเวลาที่มีการดึงข้อมูลจาก RAM โปรเซสเซอร์จะไม่ได้ใช้งาน เนื่องจากไม่สามารถทำอะไรได้จนกว่าจะได้รับข้อมูล การดำเนินการนี้จะช่วยคงกระบวนการทำงานตลอดจนกระบวนการอื่นๆ ที่รอให้เสร็จสิ้น
แม้ว่าตัวประมวลผลแบบ single-core สมัยใหม่จะไม่ใช่สิ่งที่ต้องขอบคุณการเพิ่มขึ้นของ CPU แบบมัลติคอร์ในราคาประหยัด แต่พวกเขาก็สามารถใช้เทคนิคสมัยใหม่อื่นๆ เพื่อให้ทำงานได้เร็วขึ้น ไปป์ไลน์จะอนุญาตให้แต่ละส่วนต่าง ๆ ของการจัดการคำสั่งใช้พร้อมกัน ให้ประสิทธิภาพที่เพิ่มขึ้นอย่างมีนัยสำคัญมากกว่าการใช้ไปป์ไลน์เพียงขั้นตอนเดียวต่อนาฬิกา วงจร ไปป์ไลน์กว้างจะเห็นคำสั่งหลายคำสั่งที่สามารถจัดการได้ในแต่ละขั้นตอนไปป์ไลน์ต่อรอบนาฬิกา การประมวลผลนอกคำสั่งจะช่วยให้สามารถกำหนดเวลาคำสั่งได้อย่างมีประสิทธิภาพมากขึ้น ตัวทำนายสาขาจะสามารถทำนายผลลัพธ์ของคำสั่งการโยงหัวข้อและรันคำตอบที่สันนิษฐานไว้ล่วงหน้า
ปัจจัยทั้งหมดเหล่านี้จะทำงานได้ดีและให้ประสิทธิภาพบางอย่าง อย่างไรก็ตาม การเพิ่มคอร์ตั้งแต่หนึ่งคอร์ขึ้นไปจะช่วยให้ทำทั้งหมดได้ และในจังหวะเดียวทำให้สามารถประมวลผลข้อมูลได้สองเท่าในคราวเดียว
มัลติคอร์
การเพิ่มคอร์ที่สองดูเหมือนว่าควรเพิ่มประสิทธิภาพดิบเป็นสองเท่า น่าเสียดายที่สิ่งต่าง ๆ ซับซ้อนกว่านั้น ตรรกะของโปรแกรมมักเป็นแบบเธรดเดียว หมายความว่ามีเพียงสิ่งเดียวที่โปรแกรมพยายามทำในแต่ละครั้ง อย่างไรก็ตาม สิ่งที่สามารถเกิดขึ้นได้คือกระบวนการอื่นสามารถใช้แกนหลักอื่นได้ในเวลาเดียวกัน แม้ว่าจะไม่มีการเพิ่มประสิทธิภาพโดยธรรมชาติสำหรับโปรแกรมส่วนใหญ่ แต่ข้อกำหนดของโปรแกรมพิเศษ การประมวลผลทรัพยากร ลดการแข่งขันสำหรับทรัพยากรที่จำกัดได้อย่างมีประสิทธิภาพ ซึ่งให้ เพิ่มประสิทธิภาพ การเพิ่มประสิทธิภาพนี้เพียงแค่ลดการแข่งขันสำหรับเวลา CPU จะเห็นได้ชัดเจนที่สุดเมื่อกระโดดจากตัวเดียว สำหรับ CPU แบบดูอัลคอร์ มีผลตอบแทนลดลงจากการเพิ่มจำนวนคอร์ต่อไป แม้ว่าโดยทั่วไปแล้วจะมีมากกว่า ดีกว่า.
เพื่อใช้ประโยชน์จากระบบมัลติคอร์อย่างเหมาะสมและเห็นประสิทธิภาพที่เพิ่มขึ้นอย่างแท้จริง โปรแกรมจำเป็นต้องได้รับการตั้งโปรแกรมให้ใช้เธรดการประมวลผลหลายตัว ตรรกะแบบมัลติเธรดนั้นทำได้ยากอย่างน่าเชื่อถือ เนื่องจากมักจะเรียนรู้ได้ยากและมีข้อผิดพลาดที่อาจเกิดขึ้นได้มากมาย หลุมพรางตัวอย่างหนึ่งเรียกว่าสภาพการแข่งขัน ในสภาวะการแข่งขัน กระบวนการหนึ่งถือว่ากระบวนการอื่นที่เริ่มต้นจะทำงานอย่างราบรื่น จากนั้นจะพยายามทำบางสิ่งที่ต้องอาศัยกระบวนการอื่นที่ทำงานอย่างราบรื่น ตัวอย่างเช่น ลองนึกภาพกระบวนการเริ่มกระบวนการอื่นเพื่อปิดเอกสารหนึ่งและเปิดอีกเอกสารหนึ่ง หากกระบวนการเดิมไม่ตรวจสอบอย่างถูกต้องว่ากระบวนการที่สองเสร็จสมบูรณ์หรือไม่ อาจส่งผลให้เกิดผลลัพธ์ที่ไม่คาดคิด หากมีปัญหาในการปิดเอกสารแรก เช่น เอกสารนั้นอาจยังเปิดอยู่เมื่อกระบวนการเดิมเพิ่งเขียนข้อมูลเพิ่มเติมลงไป
ปัญหาความร้อน
หนึ่งในปัญหาที่ใหญ่ที่สุดที่โปรเซสเซอร์แบบมัลติคอร์ต้องดิ้นรนคือความร้อน แม้ว่าคอร์ CPU หนึ่งคอร์จะไม่ปล่อยความร้อนออกมามากนัก แต่คอร์สองตัวก็ปล่อยความร้อนออกมามากกว่า ในซีพียูที่มีจำนวนคอร์สูง ความเข้มข้นของความร้อนนี้อาจส่งผลให้นาฬิกาเร่งความเร็วต่ำลง เนื่องจาก CPU จะจัดการอุณหภูมิ นาฬิกาเร่งความเร็วที่ต่ำกว่าจะทำให้ประสิทธิภาพการทำงานลดลงในแอปพลิเคชันแบบเธรดเดียว สิ่งนี้สามารถเห็นได้บ่อยในการวัดประสิทธิภาพการเล่นเกม วิดีโอเกมมักจะพึ่งพาเธรดเดียวเป็นอย่างมาก ด้วยเหตุนี้ ประสิทธิภาพแบบเธรดเดียวจึงมักมีความสำคัญสำหรับการเล่นเกม CPU ที่มีจำนวนคอร์สูงเช่นรุ่นที่นับได้ 16 คอร์มักจะมาจากถังขยะที่มีประสิทธิภาพสูง อย่างไรก็ตาม สิ่งเหล่านี้สามารถถูกพบว่ามีประสิทธิภาพเหนือกว่าโดยซีพียูที่ "น้อยกว่า" ที่มีจำนวนคอร์ที่ต่ำกว่าในการวัดประสิทธิภาพแบบเธรดเดียว ปัญหานี้ชัดเจนยิ่งขึ้นในซีพียูที่มีจำนวนคอร์สูงเป็นพิเศษ เช่น 64-core AMD Threadripper ซึ่งความเร็วสัญญาณนาฬิกาต่ำกว่าซีพียูเดสก์ท็อประดับไฮเอนด์อย่างเห็นได้ชัด
ประสบความสำเร็จ
แอปพลิเคชั่นจำนวนมากสามารถใช้คอร์ CPU หลายตัวได้อย่างเหมาะสม ตัวอย่างเช่น การเรนเดอร์ CPU เป็นงานที่ค่อนข้างง่ายในการทำให้ขนานกัน การปรับปรุงประสิทธิภาพสามารถเห็นได้จนถึง 64 คอร์และสูงกว่า แม้ว่าปัจจุบันไม่มี CPU ตัวเดียวที่มีมากกว่า 64 คอร์ แอปพลิเคชันจำนวนมากไม่สามารถทำงานแบบมัลติเธรดได้เนื่องจากต้องอาศัยลอจิกตามลำดับ แม้ว่าสิ่งเหล่านี้จะไม่เห็นความเร็วที่เร็วขึ้นของโปรแกรมแบบมัลติเธรด แต่ความจริงที่ว่าโปรแกรมแบบมัลติเธรด และโปรแกรมแบบ single-thread อื่นๆ สามารถใช้ CPU cores อื่นๆ ได้ ทำให้เวลาของ processor ว่างมากขึ้น ทำให้ดีขึ้น ประสิทธิภาพ.
ตัวเลือกทางสถาปัตยกรรม
ในโปรเซสเซอร์เดสก์ท็อป คอร์ CPU แต่ละคอร์ภายใน CPU แบบมัลติคอร์โดยทั่วไปจะเหมือนกัน ความเป็นเนื้อเดียวกันนี้ทำให้การจัดตารางเวลาทำงานบนแกนกลางได้ง่ายขึ้น การใช้การออกแบบซ้ำแบบเดียวกันยังช่วยลดต้นทุนการพัฒนาอีกด้วย อย่างไรก็ตาม โปรเซสเซอร์โมบายล์ใช้สถาปัตยกรรมคอร์ที่ต่างกันมาเป็นเวลานาน ในการออกแบบนี้มีแกน CPU สองหรือสามระดับ แต่ละระดับสามารถเรียกใช้กระบวนการเดียวกันได้ อย่างไรก็ตาม บางส่วนได้รับการออกแบบมาเพื่อประสิทธิภาพการใช้พลังงาน และบางส่วนได้รับการปรับแต่งเพื่อประสิทธิภาพ นี่เป็นการพิสูจน์สูตรสำเร็จสำหรับอุปกรณ์ที่ใช้พลังงานจากแบตเตอรี่ เนื่องจากงานหลายอย่างอาจใช้เวลานานกว่านั้น คอร์ที่ประหยัดพลังงาน ยืดอายุการใช้งานแบตเตอรี่ ในขณะที่กระบวนการที่มีลำดับความสำคัญสูงยังคงทำงานด้วยความเร็วสูง เมื่อจำเป็น
สถาปัตยกรรม CPU เดสก์ท็อปกำลังเคลื่อนไปในทิศทางของการออกแบบแกนที่แตกต่างกัน Alder Lake ของ Intel 12ไทย รุ่น Core CPU เป็น CPU เดสก์ท็อปตัวแรกที่ทำสิ่งนี้ ในกรณีนี้ ปัจจัยขับเคลื่อนหลักของคอร์ที่มีขนาดเล็กกว่าไม่จำเป็นต้องมีประสิทธิภาพด้านพลังงาน แต่เป็นประสิทธิภาพเชิงความร้อน แม้ว่าจะเป็นเพียงสองด้านของเหรียญเดียวกันก็ตาม การมีคอร์ที่ทรงพลังหลายคอร์ให้ประสิทธิภาพสูง ในขณะที่คอร์ที่มีประสิทธิภาพจำนวนมากสามารถจัดการงานเบื้องหลังได้โดยไม่กระทบกับคอร์หลักมากเกินไป
บทสรุป
Multicore CPU คือ CPU ที่มีแกนประมวลผลหลายตัวในแพ็คเกจเดียว แม้ว่าจะไม่ได้อยู่บนไดย์เดียวกันเท่านั้น ซีพียูแบบมัลติคอร์ไม่ได้เพิ่มประสิทธิภาพโดยตรงให้กับหลาย ๆ โปรแกรม อย่างไรก็ตาม ด้วยการเพิ่มจำนวนคอร์ โปรแกรมแบบเธรดเดียวจึงไม่จำเป็นต้องแข่งขันกันเรื่องเวลาของซีพียูมากนัก บางโปรแกรมสามารถใช้ประโยชน์จากแกนหลายตัวได้อย่างเต็มที่ ทำให้ใช้งานโดยตรงได้มากเท่าที่มี สิ่งนี้ให้ประสิทธิภาพที่เพิ่มขึ้นอย่างมาก แม้ว่าเนื่องจากข้อจำกัดด้านความร้อนและพลังงาน การเพิ่มประสิทธิภาพนี้ไม่จำเป็นต้องเป็นประสิทธิภาพโดยตรงที่เพิ่มขึ้นเป็นสองเท่าด้วยแกนที่เพิ่มขึ้นสองเท่า