/ / ทำไมแกนซีพียูทั้งหมดถึงมีความเร็วเท่ากันแทนที่จะเป็นคนละตัวกัน?

ทำไมแกนประมวลผลของ CPU จึงมีความเร็วเท่ากันแทนที่จะเป็นหน่วยต่างกัน?

หากคุณเคยจับจ่ายแบบเปรียบเทียบมาก ๆสำหรับ CPU ใหม่คุณอาจสังเกตเห็นว่าคอร์ทั้งหมดดูเหมือนจะมีความเร็วมากกว่าการรวมกันของแกนต่างๆ ทำไมถึงเป็นเช่นนั้น? โพสต์ถาม & ตอบ SuperUser วันนี้มีคำตอบสำหรับคำถามของผู้อ่านที่อยากรู้อยากเห็น

เซสชันคำถามและคำตอบของวันนี้มาถึงเราโดย SuperUser ซึ่งเป็นแผนกย่อยของ Stack Exchange ซึ่งเป็นกลุ่มที่ขับเคลื่อนด้วยชุมชนของเว็บไซต์ถามตอบ

คำถาม

ผู้อ่าน SuperUser Jamie ต้องการทราบว่าเหตุใดแกน CPU จึงมีความเร็วเท่ากันแทนที่จะเป็นแกนที่แตกต่างกัน:

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

ตัวอย่างเช่น:

  • Intel Core i5-7600K ความถี่พื้นฐาน 3.80 GHz 4 คอร์ 4 เธรด
  • Intel Core i7-7700K ความถี่พื้นฐาน 4.20 GHz 4 คอร์ 8 เธรด
  • AMD Ryzen 5 1600X, ความถี่พื้นฐาน 3.60 GHz, 6 คอร์, 12 เธรด
  • AMD Ryzen 7 1800X, ความถี่พื้นฐาน 3.60 GHz, 8 คอร์, 16 เธรด

ทำไมเราถึงเห็นรูปแบบของการเพิ่มคอร์ แต่คอร์ทั้งหมดมีความเร็วสัญญาณนาฬิกาเท่ากัน เหตุใดจึงไม่มีตัวแปรที่มีความเร็วสัญญาณนาฬิกาต่างกัน ตัวอย่างเช่นคอร์ "ใหญ่" สองคอร์และคอร์เล็ก ๆ จำนวนมาก

แทนที่จะพูดสี่คอร์ที่ 4.0 GHz (เช่น 4 × 4 GHz สูงสุด 16 GHz) แล้วซีพียูที่มีสองคอร์ทำงานที่ 4.0 GHz และ 4 คอร์ทำงานที่ 2.0 GHz (เช่น 2 × 4.0 GHz + 4 × 2.0 GHz, สูงสุด 16 GHz) ตัวเลือกที่สองจะดีพอ ๆ กันกับเวิร์กโหลดแบบเธรดเดียว แต่อาจดีกว่าสำหรับเวิร์กโหลดแบบมัลติเธรดหรือไม่

ฉันถามว่านี่เป็นคำถามทั่วไปและไม่ได้เจาะจงเกี่ยวกับซีพียูที่ระบุไว้ข้างต้นหรือเกี่ยวกับภาระงานเฉพาะใด ๆ ฉันแค่อยากรู้ว่าทำไมรูปแบบถึงเป็นแบบนี้

ทำไมแกน CPU ถึงมีความเร็วเท่ากันแทนที่จะเป็นแกนที่ต่างกัน?

คำตอบ

ผู้สนับสนุน SuperUser bwDraco มีคำตอบสำหรับเรา:

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

บนแพลตฟอร์มเดสก์ท็อปการใช้พลังงานจะมากปัญหาน้อยลงดังนั้นจึงไม่จำเป็นอย่างแท้จริง แอปพลิเคชันส่วนใหญ่คาดหวังว่าแต่ละคอร์จะมีลักษณะการทำงานที่คล้ายคลึงกันและกระบวนการจัดตารางเวลาสำหรับระบบ HMP นั้นซับซ้อนกว่าการตั้งเวลาสำหรับระบบการประมวลผลหลายรูปแบบสมมาตร (SMP) แบบดั้งเดิม (ในทางเทคนิค Windows 10 รองรับ HMP แต่ส่วนใหญ่มีไว้สำหรับมือถือ อุปกรณ์ที่ใช้ ARM big.LITTLE)

นอกจากนี้โปรเซสเซอร์เดสก์ท็อปและแล็ปท็อปส่วนใหญ่ในปัจจุบันไม่ได้ถูก จำกัด ด้วยความร้อนหรือไฟฟ้าในจุดที่แกนบางตัวต้องทำงานเร็วกว่าแกนอื่น ๆ แม้จะระเบิดในช่วงสั้น ๆ โดยพื้นฐานแล้วเราได้ตีกำแพงว่าเราสามารถสร้างคอร์แต่ละคอร์ได้เร็วเพียงใดดังนั้นการแทนที่คอร์บางคอร์ด้วยแกนที่ช้าลงจะไม่อนุญาตให้คอร์ที่เหลือทำงานเร็วขึ้น

ในขณะที่มีโปรเซสเซอร์เดสก์ท็อปบางตัวที่มีคอร์หนึ่งหรือสองคอร์ที่สามารถทำงานได้เร็วกว่าตัวอื่น ๆ ปัจจุบันความสามารถนี้ จำกัด เฉพาะโปรเซสเซอร์ Intel ระดับไฮเอนด์บางตัว (รู้จักกันในชื่อ Turbo Boost Max Technology 3.0) และเกี่ยวข้องกับการเพิ่มประสิทธิภาพเพียงเล็กน้อยสำหรับคอร์ที่สามารถทำงานได้เร็วขึ้น .

ในขณะที่สามารถออกแบบไฟล์โปรเซสเซอร์ x86 แบบดั้งเดิมที่มีทั้งคอร์ขนาดใหญ่ที่เร็วและขนาดเล็กคอร์ที่ช้าลงเพื่อเพิ่มประสิทธิภาพสำหรับเวิร์กโหลดที่มีเธรดจำนวนมากสิ่งนี้จะเพิ่มความซับซ้อนอย่างมากให้กับการออกแบบโปรเซสเซอร์และแอพพลิเคชั่นที่ไม่น่าจะรองรับได้อย่างเหมาะสม

ใช้โปรเซสเซอร์สมมุติกับ Kaby สองตัวที่รวดเร็วแกนเลค (รุ่นที่ 7) และคอร์ Goldmont (Atom) แบบช้าแปดคอร์ คุณจะมีคอร์ทั้งหมด 10 คอร์และเวิร์กโหลดที่มีเธรดจำนวนมากที่ปรับให้เหมาะกับโปรเซสเซอร์ประเภทนี้อาจได้รับประสิทธิภาพและประสิทธิภาพมากกว่าโปรเซสเซอร์ Kaby Lake แบบ Quad-core ปกติ อย่างไรก็ตามคอร์ประเภทต่างๆมีระดับประสิทธิภาพที่แตกต่างกันอย่างมากและคอร์ที่ช้าก็ไม่รองรับคำสั่งบางอย่างที่คอร์ที่รวดเร็วรองรับเช่น AVX (ARM หลีกเลี่ยงปัญหานี้โดยต้องใช้ทั้งคอร์ขนาดใหญ่และแบบ LITTLE เพื่อรองรับคำสั่งเดียวกัน ).

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

แนวทางที่แตกต่างในการออกแบบแอปพลิเคชันใกล้เคียงกับสิ่งที่คุณอาจคิดในคำถามของคุณจะใช้ GPU เพื่อเร่งความเร็วของแอปพลิเคชันส่วนขนานสูง สามารถทำได้โดยใช้ API เช่น OpenCL และ CUDA สำหรับโซลูชันชิปเดี่ยว AMD ส่งเสริมการสนับสนุนฮาร์ดแวร์สำหรับการเร่งความเร็วของ GPU ใน APU ซึ่งรวม CPU แบบดั้งเดิมและ GPU ในตัวที่มีประสิทธิภาพสูงไว้ในชิปเดียวกันในรูปแบบสถาปัตยกรรมระบบที่แตกต่างกันแม้ว่าจะไม่ได้เห็นการยอมรับจากอุตสาหกรรมภายนอกมากนัก แอพพลิเคชั่นพิเศษบางอย่าง


มีสิ่งที่จะเพิ่มคำอธิบายหรือไม่ ปิดเสียงในความคิดเห็น ต้องการอ่านคำตอบเพิ่มเติมจากผู้ใช้ Stack Exchange คนอื่นหรือไม่? ลองอ่านหัวข้อสนทนาเต็มได้ที่นี่

เครดิตรูปภาพ: Mirko Waltermann (Flickr)