ความแตกต่างระหว่างไฮเปอร์เธรดและหลายคอร์คืออะไร?


42

ในการสนทนากับผู้ดูแลเครือข่ายฉันพูดถึงว่าเครื่องของฉันเป็นแบบดูอัลคอร์ เขาบอกฉันว่ามันไม่ใช่ ฉันนำตัวจัดการงานขึ้นมาไปที่แท็บประสิทธิภาพและแสดงให้เขาเห็นว่ามีกราฟการใช้งาน CPU แยกกันสองรายการ ฉันมีเครื่อง quad-core ที่บ้านและมีสี่กราฟ เขาบอกว่ามีกราฟสองกราฟในเครื่องนี้โดยเฉพาะเนื่องจากการทำเกลียวมากเกินไป ฉันเคยมีตัวประมวลผล Pentium 4 ไฮเปอร์เธรดกลับมาในวัน แต่ฉันไม่เคยเข้าใจว่ามันหมายถึงอะไร ดังนั้นความแตกต่างระหว่างไฮเปอร์เธรดและ dual-core คืออะไร? และคุณจะบอกได้อย่างไรว่าคนที่คุณมี?

คำตอบ:


20

Hyper-Threading exposes หลายตรรกะแกนสำหรับเดียวทางกายภาพ CPU หลัก ในแง่ง่ายการทำไฮเปอร์เธรดทำให้การสลับบริบทมีประสิทธิภาพมากขึ้นสำหรับแต่ละคอร์ของ CPU

ในทางตรงกันข้ามชิพ Dual-core นั้นมีแกน CPU จริงสองแกนซึ่งสามารถประมวลผลกระบวนการต่าง ๆ ได้พร้อมกัน

นอกจากนี้ยังมีชิปแบบมัลติคอร์อื่น ๆ ที่มีมากกว่าสองคอร์และ - ตามที่กล่าวไว้ใน Svish - ข้อเสนอมัลติคอร์ล่าสุดของ Intel ยังรองรับ Hyper-threading ในทุกคอร์

คุณสามารถใช้ยูทิลิตีการระบุ CPU เช่นCPU-Zเพื่อกำหนดจำนวนคอร์ที่คุณมี อย่างที่คุณเห็นใกล้ด้านล่างของสกรีนช็อตซีพียูในกรณีนี้มี 2 แกนหลัก หากจำนวนเธรดสูงกว่าจำนวนแกน Hyper-threading จะถูกเปิดใช้งาน จนถึงปัจจุบัน CPU ที่มุ่งเน้นผู้บริโภคทั้งหมดที่มี Hyper-threading มี 2 เธรดต่อหนึ่งคอร์ดังนั้นหากเปิดใช้งาน HT จำนวนเธรดจะเป็น 2 เท่าของจำนวนคอร์

ป้อนคำอธิบายรูปภาพที่นี่

หากคุณมี CPU ของ Intel คุณสามารถดาวน์โหลดยูทิลิตี้ CPU ID ของ Intelแทน


และชิปแบบมัลติคอร์ที่รองรับการทำเธรดมากเกินไปดังนั้นคุณจะได้รับจำนวนของแกนประมวลผลเชิงตรรกะเป็นสองเท่า
Svish

ขอบคุณ! ฉันจะบอกได้อย่างไร (จากภายในระบบปฏิบัติการ) ฉันมีซีพียูประเภทใด
Josh Stodola

3
UltraSparc T2 + มี 8 คอร์แต่ละตัวรองรับ 8 เธรดทำให้เป็น CPU เสมือน 64 ตัวบนชิปตัวเดียว: en.wikipedia.org/wiki/UltraSPARC_T2
jlliagre

วิธีรู้ CPU ที่คุณใช้นั้นขึ้นอยู่กับระบบปฏิบัติการที่คุณใช้
jlliagre

@jilliagre: ดี!
ปล้น

16

Hyper-threading เป็นที่ที่ตัวประมวลผลของคุณแกล้งมีตัวประมวลผลทางกายภาพ 2 คอร์ แต่มีเพียง 1 และขยะพิเศษบางอย่าง

จุดไฮเปอร์เธรดคือหลายครั้งเมื่อคุณเรียกใช้รหัสในโปรเซสเซอร์มีบางส่วนของโปรเซสเซอร์ที่ไม่ได้ใช้งาน โดยการรวมชุด CPU register เพิ่มเติมโปรเซสเซอร์สามารถทำหน้าที่เหมือนมีสองคอร์และใช้ส่วนต่างๆของโปรเซสเซอร์ควบคู่กัน เมื่อทั้ง 2 คอร์จำเป็นต้องใช้ส่วนประกอบหนึ่งของโปรเซสเซอร์ดังนั้นคอร์หนึ่งแกนจึงรอการรอคอย นี่คือเหตุผลที่มันไม่สามารถแทนที่ dual-core และโปรเซสเซอร์ดังกล่าว

ดูเพิ่มเติมที่: คำถามนี้


6

Hyperthreading เป็นทางเลือกที่ถูกกว่าและช้ากว่าการมีดูอัลคอร์

Intel คู่มือเล่ม 3 ระบบ Programming Guide - 325384-056US กันยายน 2015 8.7 "INTEL เทคโนโลยี Hyper-Threading สถาปัตยกรรม" อธิบายสั้น ๆ HT มันมีแผนภาพต่อไปนี้:

ป้อนคำอธิบายรูปภาพที่นี่

สิ่งที่ต้องทำมันช้าลงโดยเฉลี่ยร้อยละเท่าไหร่ในการใช้งานจริง?

การทำไฮเปอร์เธรดเป็นไปได้เพราะคอร์ซีพียูเดี่ยวรุ่นใหม่มีการประมวลผลคำสั่งหลายคำพร้อมกันด้วยคำสั่งขั้นตอนhttps://en.wikipedia.org/wiki/Instruction_pipelining

ไปป์ไลน์คำสั่งเป็นการแยกฟังก์ชั่นภายในแกนหลักเดียวเพื่อให้แน่ใจว่าแต่ละส่วนของวงจรจะถูกใช้ในเวลาใดก็ตาม: หน่วยความจำการอ่านคำแนะนำการถอดรหัสคำสั่งการดำเนินการคำสั่ง ฯลฯ

Hyperthreading แยกฟังก์ชั่นเพิ่มเติมโดยใช้:

  • แบ็กเอนด์เดียวซึ่งใช้คำสั่งกับไปป์ไลน์จริง ๆ

    ดูอัลคอร์มีสองแบ็กเอนด์ซึ่งอธิบายถึงต้นทุนและประสิทธิภาพที่มากขึ้น

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

    ดูอัลคอร์จะมี 2 หน้าส่วนหนึ่งสำหรับแต่ละแบ็กเอนด์

    มีกรณีขอบที่การสั่งการเรียนการสอนใหม่ไม่ก่อให้เกิดประโยชน์ทำให้การทำไฮเปอร์เธรดไร้ประโยชน์ แต่มันก็สร้างการปรับปรุงที่สำคัญโดยเฉลี่ย

ไฮเปอร์เธรดสองอันในแกนเดียวจะแชร์ระดับแคชต่อไป (TODO มีกี่อัน? L1) มากกว่าสองคอร์ที่ต่างกันซึ่งแบ่งเป็น L3 เท่านั้นดู:

อินเทอร์เฟซที่แต่ละไฮเปอร์เธรดถูกเปิดเผยกับระบบปฏิบัติการคล้ายกับของคอร์จริงและทั้งสองสามารถควบคุมแยกกันได้ ดังนั้นcat /proc/cpuinfoฉันจึงแสดงโปรเซสเซอร์ 4 แม้ว่าฉันจะมีเพียง 2 คอร์ที่มี 2 ไฮเปอร์เธรดแต่ละตัว

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

วิดีโอ LinusTechTips นี้มีคำอธิบายที่ไม่เกี่ยวกับเทคนิค: https://www.youtube.com/watch?v=wnS50lJicXc


1
คุณจะตอบคำถาม "สิ่งที่ต้องทำ" ของคุณหรือไม่
pacoverflow

1
@pacoverflow ถ้าฉันรู้คำตอบสักวันหนึ่งหรือถ้ามีคนจะแก้ไขคำตอบสำหรับฉัน :-)
Ciro Santilli 新疆改造中心中心法轮功六四事件
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.