ไฮเปอร์เธรดคืออะไรและทำงานอย่างไร


42

ฉันเคยได้ยินคำว่าไฮเปอร์เธรดที่โยนทิ้งไปเมื่อเร็ว ๆ นี้ไฮเปอร์เธรดคืออะไรและทำไมมันถึงสำคัญ


คำตอบ:


38

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

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


6
+1 ควรเพิ่มว่าการทำไฮเปอร์เธรดนั้นขึ้นอยู่กับการติดตั้ง SMT ของ Intel เช่นโปรเซสเซอร์ SPARC มีรูปแบบการติดตั้ง SMT ที่แตกต่างกัน แต่มีเป้าหมายที่คล้ายกัน
sybreon

@Earlz คุณแนะนำว่าโปรเซสเซอร์กำลังรันสองเธรดโดยการหารแกนในสอง? หรือดูเหมือนว่าการขนานที่เกิดขึ้นจริงในไฮเปอร์เธรดทำให้โปรเซสเซอร์เปลี่ยนจากเธรดหนึ่งไปยังอีกเธรดหรือไม่?
Doopy Doo

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

12

Hyper-Threadingเป็นที่ที่เธรดสองเธรดสามารถรันบนคอร์แบบเธรดเดียว เมื่อเธรดบนแกนที่สงสัยนั้นหยุดทำงานหรืออยู่ในสถานะหยุดทำงานการทำเกลียวมากเกินไปจะทำให้แกนทำงานบนเธรดที่สองแทน

Hyper-threading ทำให้ระบบปฏิบัติการคิดว่าโปรเซสเซอร์มีจำนวนแกนประมวลผลเพิ่มขึ้นเป็นสองเท่าและบ่อยครั้งที่เพิ่มประสิทธิภาพ แต่ในพื้นที่โดยรวม 15-30% โดยรวม - แม้ว่าในบางสถานการณ์อาจมีผลการปฏิบัติงานจริง (= <20%)

ในปัจจุบันชิป Atom ส่วนใหญ่และ i7 ทั้งหมด (และชิปที่เทียบเท่ากับ Xeon) มีการทำเกลียวมากเช่นเดียวกับ P4 รุ่นเก่าบางรุ่น ในกรณีของอะตอมมันเป็นความพยายามอย่างยิ่งยวดที่จะปรับปรุงประสิทธิภาพโดยไม่ต้องใช้พลังงานมากขึ้น ในกรณีของ i7s มันแตกต่างจากช่วงของชิป i5

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


ถูกต้อง 95% หากแกนปกติ = A + B แกนไฮเปอร์เธรดจะมีลักษณะเหมือน A + 2 x B พวกเขาสามารถดำเนินการสองเธรดพร้อมกันตราบใดที่เธรดทั้งสองไม่ต้องการ A.
Vincent Vancalbergh

5

เมื่อ Single Core สามารถทำหน้าที่เป็น Dual Core ได้

มันคือHyperthreading

ในรายละเอียด

การใช้งาน Simultaneous Multi-Threading ของ Intel เป็นที่รู้จักกันในชื่อ Hyper-Threading Technology หรือ HT Technology

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


ไฮเปอร์เธรดอนุญาตให้ตัวประมวลผลเดี่ยวรันสองเธรดพร้อมกัน แต่ไม่ได้อยู่ในเงื่อนไขทั้งหมด

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

เทคโนโลยี Intel Hyper-Threading ทำให้แต่ละคอร์สามารถมีตัวประมวลผลเชิงตรรกะสองตัวที่ใช้ทรัพยากรส่วนใหญ่ของคอร์เช่นแคชหน่วยความจำและหน่วยการทำงาน

ฟังก์ชั่นหลัก

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

Intel กล่าวว่าการทำไฮเปอร์เธรดนั้นมีประสิทธิภาพสูงเพราะใช้ทรัพยากรที่ไม่ได้ใช้งานหรือใช้งานไม่ได้

ลิงค์:

Wikipedia
StackOverflow
การเขียนโปรแกรมแบบมัลติคอร์ Digital_Edition pg # 8

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

Intel Image


3

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

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

คอร์ที่มีเธรดสูงมีหน่วยประมวลผลหลักเพียงหน่วยเดียว แต่ส่วนอื่น ๆ ของ CPU ที่เกี่ยวข้องกับคำแนะนำการเตรียมการสำหรับการประมวลผลและการบำรุงรักษาสถานะการดำเนินการจะทำซ้ำ

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

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

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