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