ฉันได้ยินคำศัพท์หลายคำและหลายเธรด แต่สิ่งที่แตกต่างกันคืออะไร โปรเซสเซอร์ Intel ชนิดใดที่ใช้
ฉันได้ยินคำศัพท์หลายคำและหลายเธรด แต่สิ่งที่แตกต่างกันคืออะไร โปรเซสเซอร์ Intel ชนิดใดที่ใช้
คำตอบ:
มัลติเธรดหมายถึงงานทั่วไปของการรันมากกว่าหนึ่งเธรดของการดำเนินการภายในระบบปฏิบัติการ การมัลติเธรดเรียกว่า "การประมวลผลหลายอย่าง" โดยทั่วไปซึ่งอาจรวมถึงกระบวนการของระบบหลายระบบ (ตัวอย่างง่าย ๆ บน Windows จะเป็นเช่นการเรียกใช้ Internet Explorer และ Microsoft Word ในเวลาเดียวกัน) หรืออาจประกอบด้วยหนึ่งกระบวนการที่มีหลายเธรดภายใน มัน.
มัลติเธรด (หรือฉันควรจะพูดว่ามัลติโปรเซสเซอร์) เป็นแนวคิดซอฟต์แวร์ แทบทุกซีพียูทัวริงที่สมบูรณ์สามารถทำการมัลติเธรดแม้ว่าคอมพิวเตอร์จะมี CPU แกนเดียวเท่านั้นและแกนนั้นไม่รองรับไฮเปอร์เธรด เพื่อรองรับการประมวลผลหลายตัว CPU จะสอดแทรกการประมวลผลเธรดการดำเนินการที่แตกต่างกันโดยการดำเนินการหนึ่งจากนั้นดำเนินการอีกหนึ่งจากนั้นอีกระบบปฏิบัติการที่จะแบ่งเวลาที่มีอยู่เป็น "สไลซ์" และให้เวลาโดยประมาณ แต่ละเธรด (เวลาไม่จำเป็นต้องเท่ากัน แต่โดยทั่วไปแล้วจะทำอย่างไรเว้นแต่กระบวนการจะขอลำดับความสำคัญสูงกว่า)
โปรดทราบว่าเมื่อใดก็ตามที่มีเธรดซอฟต์แวร์เพิ่มเติมของการดำเนินการที่พยายามเรียกใช้งานในเวลาใดก็ตามมากกว่าที่มีเธรดการดำเนินการฮาร์ดแวร์ที่พร้อมใช้งาน(พร้อมกัน) เธรดซอฟต์แวร์เหล่านี้จะถูก "interleaved" ท่ามกลางคอร์ที่มีอยู่ ในกรณีของ "ตัวประมวลผลเดียว" (CPU แกนเดียวที่ไม่มีไฮเปอร์เธรด) ถ้าคุณมีเธรดซอฟต์แวร์มากกว่าหนึ่งเธรดพวกเขาจะเสมอแทรก ถ้าคุณมีซีพียูแบบ 4 คอร์ที่มีไฮเปอร์เธรดนั่นคือ 8 "เธรดฮาร์ดแวร์" ซึ่งหมายความว่าซีพียูสามารถดำเนินการประมวลผล 8 เธรดพร้อมกันได้ในเวลาเดียวกันดังนั้นหากคุณมี 8 เธรดซอฟต์แวร์ที่พยายามเรียกใช้ ; แต่ถ้าคุณมีเธรดซอฟต์แวร์ 9 เธรดหนึ่งในเธรดฮาร์ดแวร์จะต้องแทรกคู่ของเธรด (คู่ที่ถูกต้องของเธรดที่เลือกจะขึ้นอยู่กับการใช้ตัวกำหนดตารางเวลาของระบบปฏิบัติการ)
ในทางกลับกัน Hyperthreading หมายถึงเทคโนโลยีฮาร์ดแวร์เฉพาะที่สร้างโดย Intel ซึ่งช่วยให้หน่วยประมวลผลหลักเดียวสามารถแทรกหลายเธรดการทำงานได้อย่างมีประสิทธิภาพยิ่งขึ้น กล่าวอีกนัยหนึ่งซีพียูที่มีไฮเปอร์เธรดจะให้ประสิทธิภาพซึ่งค่อนข้างสูงกว่าซีพียูซึ่งเป็นอย่างอื่นเหมือนกัน แต่ไม่มีไฮเปอร์เธรดเนื่องจาก CPU ไฮเปอร์เธรดจะสามารถสร้างสมดุลที่สองพร้อมกัน (บางครั้งมากขึ้น วิธี) เธรดของการดำเนินการบนแกนที่กำหนด
อย่างไรก็ตามการทำไฮเปอร์เธรดช้ากว่าการแยกคอร์โดยสิ้นเชิงเนื่องจากมีการดำเนินการบางประเภทที่สามารถทำลายข้อได้เปรียบด้านประสิทธิภาพของการทำไฮเปอร์เธรดในขณะที่มีการดำเนินการน้อยกว่าที่สามารถทำให้เกิดเหตุการณ์ดังกล่าว
ใช้ตัวอย่างต่อไปนี้โดยที่ถือว่า "1 คอร์" เพื่อให้ทำงานเหมือนกันทุกตัวอย่าง:
ตัวอย่างที่ 1: 2 แกนไม่มีไฮเปอร์เธรด
ตัวอย่างที่ 2: 4 แกนไม่มีไฮเปอร์เธรด
ตัวอย่างที่ 3: 2 แกนที่มีไฮเปอร์เธรด
ตัวอย่างที่ 4: 4 แกนที่มีไฮเปอร์เธรด
ในกรณีนี้ตัวอย่างที่ 4 จะเร็วที่สุดเสมอ ตัวอย่างที่ 2 บางครั้งอาจเร็วพอ ๆ กับตัวอย่างที่ 4 บนเวิร์กโหลดที่ไม่เหมาะสมอย่างยิ่งกับการใช้ประโยชน์จากการเพิ่มประสิทธิภาพของไฮเปอร์เธรด
ตัวอย่างที่ 3 ในทางกลับกันบางครั้งอาจบนเวิร์กโหลดที่ไฮเปอร์เธรดมีประโยชน์มากที่สุดเกือบจะเร็วเท่ากับตัวอย่างที่ 2 ถึงแม้ว่ามันจะมีครึ่งฟิสิคัลคอร์มาก
ตัวอย่างที่ 1 แน่นอนว่าช้าที่สุดสำหรับตัวอย่างทั้งหมด แต่บางครั้งมันอาจจะเร็วพอ ๆ กับตัวอย่างที่ 3 เมื่อเรียกใช้เวิร์กโหลดที่ไม่เหมาะสมกับการทำไฮเปอร์เธรด
ในมาตรฐานโลกแห่งความเป็นจริงด้วยซีพียู Intel ที่ทันสมัยเรามักจะพบว่าการทำไฮเปอร์เธรดนั้นส่งผลให้ประสิทธิภาพโดยรวมดีขึ้น 20% ถึง 40% เมื่อเทียบกับไฮเปอร์เธรดที่ไม่มีการไฮเปอร์เธรด BIOS) บางครั้งจะมีเวิร์กโหลดที่ปิดใช้งานไฮเปอร์เธรดแสดงข้อดีด้านประสิทธิภาพแต่เวิร์กโหลดเหล่านี้อาจหายากในการใช้งานจริง แต่ถ้าฉันมีตัวเลือกระหว่าง 4 คอร์กับไฮเปอร์เธรดหรือ 8 คอร์สมมติว่าแต่ละคอร์นั้นมีประสิทธิภาพเหมือนกันฉันจะเลือกซีพียู 8 คอร์ทุกครั้ง
มัลติเธรดเป็นคำศัพท์สำหรับการประมวลผลแบบขนานในระดับระบบปฏิบัติการ หน่วยประมวลผลไม่มีส่วนเกี่ยวข้องกับมัลติเธรด
Hyperthreading เป็นแนวคิดของ Intel ที่ใช้การประมวลผล "พร้อมกัน" ของหลายเธรดในโปรเซสเซอร์คอร์เดียว ระบบปฏิบัติการจะเห็นคอร์โปรเซสเซอร์สองคอร์แม้ว่าจะมีฟิสิคัลคอร์เพียงแกนเดียวเท่านั้น