ScholarGate
ผู้ช่วย

มัลติคอร์และชิปมัลติโปรเซสเซอร์

ชิปมัลติโปรเซสเซอร์รวมคอร์ประมวลผลหลายคอร์ไว้บนดาย (die) เดียวกัน โดยใช้แคชและอินเทอร์เฟซหน่วยความจำร่วมกัน เพื่อให้การประมวลผลแบบขนานระดับเธรด (thread-level parallelism) เป็นตัวขับเคลื่อนการเติบโตของประสิทธิภาพ แทนที่จะเป็นความเร็วสัญญาณนาฬิกาที่สูงขึ้น

ค้นหาหัวข้อด้วย PaperMindเร็ว ๆ นี้Find papers & topics
Tools & resources
ดาวน์โหลดสไลด์
Learn & explore
วิดีโอเร็ว ๆ นี้

Definition

โปรเซสเซอร์มัลติคอร์ หรือชิปมัลติโปรเซสเซอร์ คือวงจรรวมเดี่ยวที่ประกอบด้วยคอร์ประมวลผลอิสระหลายคอร์ ซึ่งใช้ทรัพยากรบางส่วนบนชิปและระบบหน่วยความจำร่วมกัน ออกแบบมาเพื่อประมวลผลเธรดหรือโปรแกรมหลายรายการพร้อมกัน

Scope

หัวข้อนี้ครอบคลุมการจัดระเบียบของชิปมัลติคอร์: จำนวนคอร์และความแตกต่างหลากหลาย (heterogeneity), ลำดับชั้นของแคชแบบใช้ร่วมกันและแบบส่วนตัว, การเชื่อมต่อภายในชิป (on-chip interconnects), และวิธีที่ประสิทธิภาพเพิ่มขึ้นตามจำนวนคอร์ภายใต้กฎของแอมดาล (Amdahl's law) โดยจะกล่าวถึงโครงสร้างฮาร์ดแวร์ของระบบมัลติคอร์ ไม่รวมกลไกความสอดคล้องและความคงที่ที่ใช้ร่วมกับหัวข้อหน่วยความจำที่ใช้ร่วมกันอื่นๆ (shared-memory-and-coherence, cache coherence protocols) และเอนจินแบบคอร์เดี่ยว (processor microarchitecture)

Core questions

  • เหตุใดโปรเซสเซอร์จึงเปลี่ยนจากคอร์เดี่ยวที่เร็วไปเป็นหลายคอร์?
  • คอร์ แคช และการเชื่อมต่อถูกจัดระเบียบอย่างไรบนชิป?
  • กฎของแอมดาลจำกัดความเร็วที่เพิ่มขึ้นจากการเพิ่มคอร์ได้อย่างไร?
  • เมื่อใดที่คอร์แบบหลากหลาย (heterogeneous cores) ดีกว่าคอร์ที่เหมือนกัน?

Key concepts

  • ชิปมัลติโปรเซสเซอร์
  • การประมวลผลแบบขนานระดับเธรด
  • แคชแบบใช้ร่วมกันเทียบกับแคชส่วนตัว
  • การเชื่อมต่อภายในชิป
  • จำนวนคอร์และการปรับขนาด
  • คอร์แบบหลากหลาย (big.LITTLE)
  • กฎของแอมดาล
  • ข้อจำกัดด้านพลังงานและความร้อน

Key theories

กฎของแอมดาลสำหรับการปรับขนาดมัลติคอร์
ส่วนที่เป็นลำดับของเวิร์กโหลดจำกัดความเร็วที่เพิ่มขึ้นได้จากการเพิ่มคอร์; ข้อจำกัดนี้อธิบายว่าทำไมการเพิ่มจำนวนคอร์เพียงอย่างเดียวจึงให้ผลตอบแทนที่ลดลง และกระตุ้นให้ลดคอขวดแบบลำดับและใช้การออกแบบที่หลากหลาย

Mechanisms

ชิปมัลติคอร์จะวางคอร์หลายคอร์ไว้บนดายเดียวกัน โดยทั่วไปจะมีแคชระดับแรกแบบส่วนตัว, แคชระดับสุดท้ายที่ใช้ร่วมกัน, และเครือข่ายหรือวงแหวนบนชิปที่เชื่อมต่อกับตัวควบคุมหน่วยความจำ เวิร์กโหลดจะได้รับประสิทธิภาพเพิ่มขึ้นจากการรันเธรดบนคอร์ที่แตกต่างกัน การออกแบบที่หลากหลาย (heterogeneous designs) จะรวมคอร์ประสิทธิภาพสูงขนาดใหญ่เข้ากับคอร์ประสิทธิภาพต่ำขนาดเล็ก โดยจัดตารางงานไปยังคอร์ที่เหมาะสมที่สุดเพื่อรักษาสมดุลระหว่างความเร็วและพลังงาน

Clinical relevance

มัลติคอร์เป็นการออกแบบโปรเซสเซอร์ที่โดดเด่นในปัจจุบัน ตั้งแต่โทรศัพท์ไปจนถึงเซิร์ฟเวอร์ เนื่องจากความถี่สัญญาณนาฬิกาหยุดนิ่งภายใต้ข้อจำกัดด้านพลังงาน การเพิ่มขึ้นของมัลติคอร์ทำให้ภาระด้านประสิทธิภาพตกอยู่กับซอฟต์แวร์แบบขนาน: แอปพลิเคชันต้องเป็นแบบมัลติเธรดจึงจะได้รับประโยชน์ ทำให้การประมวลผลพร้อมกัน (concurrency) กลายเป็นข้อกังวลหลักในการเขียนโปรแกรม และกฎของแอมดาลกลายเป็นข้อจำกัดเชิงปฏิบัติในระบบจริง

History

ชิปมัลติโปรเซสเซอร์สำหรับการวิจัย เช่น Hydra ของ Stanford ในทศวรรษ 1990 ได้คาดการณ์ยุคมัลติคอร์ การหยุดชะงักของการเพิ่มความถี่สัญญาณนาฬิกาประมาณปี 2004–2005 ผลักดันให้ CPU กระแสหลักเปลี่ยนไปใช้การออกแบบแบบดูอัลคอร์และต่อมาเป็นแบบหลายคอร์ สถาปัตยกรรมแบบหลากหลายที่รวมคอร์ประสิทธิภาพสูงและคอร์ประหยัดพลังงานเข้าด้วยกันได้กลายเป็นที่นิยมในเวลาต่อมา โดยเฉพาะในโปรเซสเซอร์สำหรับมือถือและแล็ปท็อป

Debates

คอร์จำนวนมากเทียบกับคอร์ที่แข็งแกร่งกว่า
เมื่อมีข้อจำกัดด้านพลังงานและพื้นที่ นักออกแบบถกเถียงกันว่าจะเพิ่มคอร์ที่เรียบง่ายจำนวนมาก, คอร์ที่ทรงพลังน้อยลง, หรือการผสมผสานแบบหลากหลาย; ทางเลือกที่ดีที่สุดขึ้นอยู่กับว่าเวิร์กโหลดเป้าหมายเป็นแบบขนานมากน้อยเพียงใด โดยกฎของแอมดาลจะสนับสนุนคอร์ที่แข็งแกร่งเมื่อส่วนที่เป็นลำดับมีนัยสำคัญ

Key figures

  • Gene Amdahl
  • John L. Hennessy
  • David A. Patterson
  • Kunle Olukotun

Related topics

Seminal works

  • hennessy2019
  • amdahl1967

Frequently asked questions

เหตุใดการเพิ่มจำนวนคอร์เป็นสองเท่าจึงไม่ทำให้ประสิทธิภาพเพิ่มขึ้นเป็นสองเท่า?
ตามกฎของแอมดาล ส่วนใดๆ ของโปรแกรมที่ต้องทำงานแบบลำดับจะจำกัดประโยชน์ของคอร์ที่เพิ่มเข้ามา การสื่อสาร การซิงโครไนซ์ และการแย่งชิงทรัพยากรที่ใช้ร่วมกันจะเพิ่มโอเวอร์เฮดเพิ่มเติม ดังนั้นความเร็วที่เพิ่มขึ้นจริงมักจะต่ำกว่าการปรับขนาดเชิงเส้นในอุดมคติมาก
คอร์แบบหลากหลาย (big.LITTLE) คืออะไร?
การออกแบบแบบหลากหลายจะรวมคอร์ขนาดใหญ่ประสิทธิภาพสูงเข้ากับคอร์ขนาดเล็กที่ประหยัดพลังงานบนชิปเดียวกัน ระบบจะจัดตารางงานที่ต้องการประสิทธิภาพสูงให้กับคอร์ขนาดใหญ่ และงานเบาๆ หรืองานเบื้องหลังให้กับคอร์ขนาดเล็ก ซึ่งช่วยปรับปรุงประสิทธิภาพการใช้พลังงานโดยไม่ลดทอนประสิทธิภาพสูงสุด

Methods for this concept

Related concepts