ฉันเคยได้ยินคำว่าไฮเปอร์เธรดที่โยนทิ้งไปเมื่อเร็ว ๆ นี้ไฮเปอร์เธรดคืออะไรและทำไมมันถึงสำคัญ
ฉันเคยได้ยินคำว่าไฮเปอร์เธรดที่โยนทิ้งไปเมื่อเร็ว ๆ นี้ไฮเปอร์เธรดคืออะไรและทำไมมันถึงสำคัญ
คำตอบ:
Hyper-threading เป็นที่ที่ตัวประมวลผลของคุณแกล้งมีตัวประมวลผลทางกายภาพ 2 คอร์ แต่มีเพียง 1 และขยะพิเศษบางอย่าง
จุดไฮเปอร์เธรดคือหลายครั้งเมื่อคุณเรียกใช้รหัสในโปรเซสเซอร์มีบางส่วนของโปรเซสเซอร์ที่ไม่ได้ใช้งาน โดยการรวมชุด CPU register เพิ่มเติมโปรเซสเซอร์สามารถทำหน้าที่เหมือนมีสองคอร์และใช้ส่วนต่างๆของโปรเซสเซอร์ควบคู่กัน เมื่อทั้งสองคอร์จำเป็นต้องใช้ส่วนประกอบหนึ่งของโปรเซสเซอร์ดังนั้นคอร์ตัวใดตัวหนึ่งก็จบลงด้วยการรอคอย นี่คือเหตุผลที่มันไม่สามารถแทนที่ dual-core และโปรเซสเซอร์ดังกล่าว
Hyper-Threadingเป็นที่ที่เธรดสองเธรดสามารถรันบนคอร์แบบเธรดเดียว เมื่อเธรดบนแกนที่สงสัยนั้นหยุดทำงานหรืออยู่ในสถานะหยุดทำงานการทำเกลียวมากเกินไปจะทำให้แกนทำงานบนเธรดที่สองแทน
Hyper-threading ทำให้ระบบปฏิบัติการคิดว่าโปรเซสเซอร์มีจำนวนแกนประมวลผลเพิ่มขึ้นเป็นสองเท่าและบ่อยครั้งที่เพิ่มประสิทธิภาพ แต่ในพื้นที่โดยรวม 15-30% โดยรวม - แม้ว่าในบางสถานการณ์อาจมีผลการปฏิบัติงานจริง (= <20%)
ในปัจจุบันชิป Atom ส่วนใหญ่และ i7 ทั้งหมด (และชิปที่เทียบเท่ากับ Xeon) มีการทำเกลียวมากเช่นเดียวกับ P4 รุ่นเก่าบางรุ่น ในกรณีของอะตอมมันเป็นความพยายามอย่างยิ่งยวดที่จะปรับปรุงประสิทธิภาพโดยไม่ต้องใช้พลังงานมากขึ้น ในกรณีของ i7s มันแตกต่างจากช่วงของชิป i5
การประมวลผลที่ซับซ้อนจะไม่ได้รับประโยชน์มากจาก HT แต่งานบางอย่าง (ง่ายและมีหลายเธรดสูง) เช่นการเข้ารหัสวิดีโอได้รับประโยชน์จาก HT ในความเป็นจริงมีไม่มากในนั้น ...
เมื่อ 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
หากต้องการขยายสิ่งที่กล่าวมาแล้วการทำไฮเปอร์เธรดหมายความว่าซีพียูแกนเดียวสามารถรักษาบริบทการดำเนินการแยกกันสองรายการและสลับไปมาระหว่างกันอย่างรวดเร็วโดยจำลองสองคอร์ในระดับฮาร์ดแวร์อย่างมีประสิทธิภาพ
คุณจะได้รับความเร็วที่พอเหมาะสำหรับเวิร์กโหลดแบบมัลติเธรดเมื่อเปรียบเทียบกับคอร์แกนเดี่ยวปกติ อย่างไรก็ตามไม่มีที่ไหนใกล้ประโยชน์ของการมีสองคอร์อิสระ ในแง่ของประสิทธิภาพคุณควรคิดว่ามันเป็นการเพิ่มประสิทธิภาพการทำงานแบบมัลติเธรดบนแกนเดียวมากกว่าการมีประสิทธิภาพเข้ามาใกล้สองคอร์ ขนาดของการเพิ่มความเร็วนั้นแตกต่างกันไปตามปริมาณงาน - แน่นอนว่าสำหรับปริมาณงานบางส่วนการเพิ่มประสิทธิภาพนั้นค่อนข้างดี
คอร์ที่มีเธรดสูงมีหน่วยประมวลผลหลักเพียงหน่วยเดียว แต่ส่วนอื่น ๆ ของ CPU ที่เกี่ยวข้องกับคำแนะนำการเตรียมการสำหรับการประมวลผลและการบำรุงรักษาสถานะการดำเนินการจะทำซ้ำ
แกนประมวลผลมีขั้นตอนการเรียนการสอน - คิวคำสั่งในอนาคตที่จะดำเนินการซึ่งกำลังได้รับการปรับปรุงอย่างต่อเนื่องพร้อมให้ CPU ดำเนินการคำสั่งที่ส่วนหัวของคิวนั้น ซีพียูใช้สิ่งเหล่านี้ในการเพิ่มประสิทธิภาพความเร็วในการประมวลผลโดยดูที่คำสั่งในอนาคตเหล่านี้และทำการประมวลผลล่วงหน้าระดับต่ำที่ง่ายที่สุดเท่าที่จะทำได้ (การปรับให้เหมาะสมดังกล่าวรวมถึง
คอร์ที่มีเธรดมากมีท่อคำสั่งคู่และนี่พร้อมกับรีจิสเตอร์ชุดที่สองคือที่ที่คุณจะได้รับผลประโยชน์ด้านความเร็วสำหรับเวิร์กโหลดแบบมัลติเธรด การสลับไปมาระหว่างบริบทของเธรดไม่ได้ส่งไปป์ไลน์หรือรีจิสเตอร์และไพพ์ไลน์และรีจิสเตอร์สำหรับเธรดอื่นยังคงพร้อมและ "ร้อน" เพื่อให้สามารถสลับไปใช้ทันที