พี่น้องหมายถึงอะไรใน / proc / cpuinfo?


คำตอบ:


9

หากจำนวนพี่น้องเท่ากับจำนวนแกนดังนั้นคุณมี CPU ที่ไม่ใช่ไฮเปอร์เธรดหรือไฮเปอร์เธรดถูกปิดหากจำนวนพี่น้องคือ 2 เท่าของจำนวนแกนแล้วคุณมี CPU ไฮเปอร์เธรดที่เปิดสวิตช์ไฮเปอร์เธรด มีบทความที่ดีคือที่นี่


7

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

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

  1. siblings : 2รายการพินัยกรรม Core 2 Duo ดูอัลคอร์ไม่มีไฮเปอร์เธรด
  2. siblings : 4รายการพินัยกรรม Xeon E5420 Dual Core พร้อม Hyperthreading
  3. Pentium 4 siblings : 2กับรายการประสงค์ แกนเดี่ยวพร้อมไฮเปอร์เธรด

1

ก่อนอื่นให้เข้าใจข้อกำหนดด้านล่างและบริบทการใช้งาน

  • ซีพียู
    • CPU เป็นหน่วยประมวลผล
    • มันจะมีหลายองค์ประกอบในการประมวลผลคำแนะนำ
    • แต่ละองค์ประกอบรับผิดชอบการดำเนินการที่แตกต่างกันเช่นการดึงคำสั่งถอดรหัสกระบวนการปรับปรุง ฯลฯ
  • แกน
    • CPU หนึ่งตัวอาจมีหลายชุด / หน่วยของส่วนประกอบที่กล่าวถึงข้างต้น
    • หากมีสองชุดของหน่วยเหล่านี้โปรเซสเซอร์สามารถเรียกใช้สองคำแนะนำในแบบคู่ขนาน
    • หนึ่งหน่วยถูกเรียกว่าเป็นแกนหลัก
    • CPU Duel-Core จะมีสองชุดที่เหมือนกัน CPU Quad-core จะมีชุด / ส่วนประกอบเหล่านี้สี่ชุดที่เหมือนกัน
  • Multi-cpu / hyperthreading
    • นี่เป็นเรื่องยุ่งยากเล็กน้อย ถูกต้องเท่านั้นบริบทซอฟต์แวร์
    • เมื่อใดก็ตามที่คำสั่งรอเหตุการณ์ภายนอกให้เสร็จสมบูรณ์ CPU จะไม่ทำงาน เพื่อให้ใช้งาน CPU ได้ดีขึ้นผู้ขายบางรายจึงดูแลรักษาฮาร์ดแวร์สองเธรดและเมื่อใดก็ตามที่เธรดหนึ่งถูกบล็อกฮาร์ดแวร์จะสลับไปใช้เธรดอื่น โปรเซสเซอร์ประเภทนี้จะมีความสามารถในการจัดเก็บและกู้คืนสถานะ CPU
    • สำหรับซอฟต์แวร์มันจะดูเหมือนว่ามีสองเธรดกำลังทำงานแบบขนาน
    • Linux พิจารณาแกนไฮเปอร์เธรดนี้เป็นหลายซีพียู เพราะมันสามารถรันสองเธรดพร้อมกัน ดังนั้นมันจะเห็นสองหน่วยดำเนินการ (ซีพียูเทียม)
    • ตัวอย่างเช่นซีพียู Intel ล่าสุดถูกทำไฮเปอร์เธรดสามารถรันเธรดพร้อมกันสองเธรด
  • multi-core
    • CPU สมัยใหม่มีหน่วยฮาร์ดแวร์ / Cores ดังกล่าวหลายชุด
    • พวกเขาสามารถดำเนินการสองคำสั่งแบบขนานได้
    • แต่ละแกนสามารถถูกไฮเปอร์เธรดได้เช่นกัน
  • หลายหน่วยประมวลผล
    • ระบบที่มีประสิทธิภาพสูงเช่นเซิร์ฟเวอร์, คอมพิวเตอร์ Super จะมี CPU จริงหลายตัว
    • คุณสามารถดูซ็อกเก็ต CPU หลายตัวในบอร์ดแม่ของพวกเขา
    • แต่ละคนสามารถมีหลายแกน แต่ละแกนสามารถถูกไฮเปอร์เธรดอีกครั้ง

พีซีที่ทันสมัยมักจะมาพร้อมกับโปรเซสเซอร์แบบมัลติคอร์แบบหลายเธรด ตัวอย่างเช่นลีนุกซ์ที่รันบนพีซีที่มาพร้อมกับซีพียูแบบไฮเปอร์เธรดเธรดแบบ quad-core จะเห็นซีพียู 8 ตัว (ไฮเปอร์เธรด 4 คอร์ x 2)

เซิร์ฟเวอร์สมัยใหม่มักเป็นระบบ Multi-Core-Multi-Processor เซิร์ฟเวอร์ทั่วไปจะมีซ็อกเก็ตสองซ็อกเก็ตแต่ละอันมีคอร์ไฮเปอร์เธรด 24 อัน ดังนั้น Linux ที่ทำงานบนระบบนี้จะเห็น 96 ซีพียู (2 Sockets x 24 Cores x 2 hyperthreads)

พี่น้อง

กลับมาที่คำถามจริงแคชร่วมกันของโปรเซสเซอร์จะถูกเรียกว่าพี่น้อง การจัดเก็บแคชจะเป็นเช่นนี้ (แม้ว่าจะแตกต่างกันไปตามสถาปัตยกรรม)

  • แต่ละคอร์จะมี L1 Instruction-cache และ L1 Data-cache หนึ่งอัน
  • แต่ละแกนจะเป็นหนึ่งเดียวกับ L2 แคช
  • Cores ทั้งหมดใน Socket จะมีหนึ่ง Unified L3 cache
  • โดยทั่วไปจะไม่มีซ็อกเก็ตสองซ็อกเก็ตใด ๆ

พิจารณาระบบ Multi-Core-Multi-Processor ที่มี 2 ซ็อกเก็ต ซ็อกเก็ตแต่ละอันมี 24 คอร์พร้อมไฮเปอร์เธรด ในกรณีนี้ลีนุกซ์จะเห็นซีพียูทั้งหมด 96 หมายเลขตั้งแต่ 0 ถึง 95 ซ็อกเก็ต 1 จะมีซีพียู 0-47 และซ็อกเก็ต 2 จะมี 48-95 สำหรับระบบที่มีองค์กรแคชดังกล่าวข้างต้น

  • โปรเซสเซอร์ 0-47 เป็นพี่น้องกัน
  • โปรเซสเซอร์ 48-95 เป็นพี่น้องกัน

0

เคอร์เนลใช้จำนวนพี่น้องเพื่อโหลดบาลานซ์ตัวอย่างเช่น

สี่งานกำลังทำงานบนระบบที่มีแพ็กเกจฟิสิคัลสองแพ็กเกจแต่ละอันมีสองคอร์ (แบ่งใช้แคชระดับสุดท้าย) และแต่ละคอร์มีสองเธรดโลจิคัล โหลดบาลานซ์จะเข้าที่โดเมนมัลติคอร์สำหรับแพ็กเกจแรกส่งผลให้มีการกระจายโหลดที่เท่ากันในทุกคอร์


แพคเกจเป็นคำศัพท์ที่ผิดที่นี่
Wim Kerkhoff
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.