หน่วยประมวลผลของฉันเป็นi3-380m Intel Core อย่างที่คุณเห็นมันเป็น 2 คอร์และ 4 เธรด
แม้ว่า Ubuntu 11.04 และ Windows 7 ทั้งสองดูเหมือนว่าจะเป็น CPU แบบ quad-core:
ทำไมนี้ เป็นเพราะมี 2 เธรดต่อคอร์แบ่งซีพียูในหน่วยประมวลผล 4 ตัว?
หน่วยประมวลผลของฉันเป็นi3-380m Intel Core อย่างที่คุณเห็นมันเป็น 2 คอร์และ 4 เธรด
แม้ว่า Ubuntu 11.04 และ Windows 7 ทั้งสองดูเหมือนว่าจะเป็น CPU แบบ quad-core:
ทำไมนี้ เป็นเพราะมี 2 เธรดต่อคอร์แบ่งซีพียูในหน่วยประมวลผล 4 ตัว?
คำตอบ:
ดังที่กล่าวไว้คุณมีระบบดูอัลคอร์ที่มี 2 เธรดต่อคอร์
Intel ทำตลาดโดยใช้Hyperthreadingและมีหลายวิธีในหลายปีที่ผ่านมาโดยผู้ผลิตหลายราย
เพื่ออธิบายในรูปแบบที่ง่ายที่สุดของแต่ละคอร์ซีพียูประกอบด้วย "คอร์" และสถาปัตยกรรมที่หลากหลายรอบคอร์นั้นซึ่งเก็บข้อมูลสถานะและกระบวนการสำหรับแต่ละเธรด แกนเธรดเดียวมีสถาปัตยกรรมเพื่อเก็บข้อมูลสถานะ 1 เธรดที่เก็บไว้ในเวลาหนึ่งแกนไฮเปอร์เธรดเก็บข้อมูลสถานะที่แตกต่างกันสองชุดทำให้กระบวนการที่แยกจากกันสองกระบวนการรันในครั้งเดียวตราบเท่าที่ต้องการส่วนต่าง ๆ ของแกน ( ซึ่งน่าจะเกิดขึ้นอย่างสมเหตุสมผลเนื่องจากแกนประมวลผลประกอบด้วยหน่วยหลายหน่วยของหน่วยประมวลผลหลายประเภทที่แตกต่างกัน)
เพื่อลดความซับซ้อนของวิธีการที่ซีพียูเห็นต่อระบบแต่ละไฮเปอร์เธรดถูกมองว่าเป็นซีพียูแยกกันดังนั้นโปรเซสเซอร์ดูอัลคอร์ 2 เธรดต่อคอร์จึงปรากฏเป็นโปรเซสเซอร์คอร์คอร์
นอกจากนี้ยังเป็นไปได้ที่ระบบปฏิบัติการจะใช้Core-parking (คุณลักษณะในโปรเซสเซอร์รุ่นใหม่ของ Intel) ทำให้ระบบปฏิบัติการสามารถระงับแกนไฮเปอร์เธรดครึ่งหนึ่งเพื่อให้เมื่อไม่จำเป็นต้องใช้ความสามารถในการประมวลผลเพิ่มเติมของเธรดเดียว เพิ่มขึ้นเนื่องจากแกนกลางไม่ได้แชร์แคชข้าม 2 เธรดอีกต่อไปและสามารถอุทิศแคชบนแกนหลักให้กับเธรดเดี่ยวได้อย่างสมบูรณ์
เหตุผลก็คือไฮเปอร์เธรดซึ่งโปรเซสเซอร์ของคุณรองรับ ไฮเปอร์เธรดไม่เท่ากับโปรเซสเซอร์เพิ่มเติม แต่สามารถเพิ่มประสิทธิภาพได้จริงบนแอพพลิเคชั่นแบบมัลติเธรด สำหรับโปรเซสเซอร์แต่ละคอร์ที่มีอยู่จริงระบบปฏิบัติการจะระบุโปรเซสเซอร์เสมือนสองตัวและแบ่งใช้เวิร์กโหลดระหว่างกันเมื่อเป็นไปได้
สิ่งต่าง ๆ มีความซับซ้อนมากกว่าในวันที่มีคำสั่ง cpu หนึ่งคำสั่งต่อหนึ่งรอบสัญญาณนาฬิกา
ขณะนี้มีท่อสำหรับแต่ละคำสั่งที่ประกอบด้วยหลายขั้นตอน ฉันได้ยินมามากถึง 41 แล้วแม้ว่าจะผ่านมาไม่นานและฉันก็ไม่รู้ว่าท่อซีพียูในปัจจุบันมีลักษณะอย่างไร ฉันรู้ว่าถ้าไปป์ไลน์ยาวพอคุณสามารถเริ่มต้นคำสั่งใหม่ลงไปป์ไลน์ก่อนที่คำสั่งสุดท้ายจะเสร็จสิ้นบางครั้งในรอบสัญญาณนาฬิกาเดียวกันเพื่อให้แกนเดี่ยวของคุณทำสองสิ่งได้อย่างมีประสิทธิภาพพร้อมกัน
มีเคล็ดลับที่นี่แม้ว่า คุณไม่สามารถใช้สิ่งนี้เพื่อเร่งความเร็วที่โปรเซสเซอร์ของคุณจะเคี้ยวผ่านคำแนะนำจากโปรแกรมเฉพาะ มีปัญหาที่เกี่ยวข้องกับความถูกต้อง: คำสั่งต่อไปอาจขึ้นอยู่กับผลที่ยังไม่ได้บึกบึนของคำสั่งก่อนหน้า เพื่อใช้ประโยชน์จากไพพ์ไลน์แบบยาวอย่างปลอดภัยชิปจะแสดงคอร์ตัวประมวลผลแยกกันสองคอร์ไปยังตัวกำหนดตารางเวลาระบบปฏิบัติการและคำแนะนำอื่นที่ส่งไปยังแต่ละคอร์ วิธีนี้ทำให้เรามั่นใจได้ว่าคำสั่งใด ๆ ที่ดำเนินการพร้อมกันจะไม่รบกวนซึ่งกันและกัน นี้เรียกว่าhyperthreading
เป็นที่น่าสังเกตว่าที่นี่ในขณะที่การทำไฮเปอร์เธรดสามารถเพิ่มจำนวนงานที่คุณได้รับจากซีพียูได้อย่างมีนัยสำคัญ มันอาจหมายถึงการปรับปรุงเพียงเล็กน้อยที่ 15% หรือเพิ่มขึ้น 40% ในบางกรณีคุณอาจต้องการปิดการใช้งานคุณสมบัติเพื่อให้แกนที่เหลือมีการเข้าถึงแบบเต็มไปยังแคช L1 / L2 สำหรับคอร์นั้น (บางครั้งทำได้กับเซิร์ฟเวอร์ฐานข้อมูลเฉพาะ)
เมื่อชิปของคุณโฆษณาตัวเองว่ามี 2 คอร์ที่มี 4 เธรดนั่นหมายความว่าเป็นโปรเซสเซอร์แบบดูอัลคอร์ที่รองรับการทำไฮเปอร์เธรด
ลองดูที่เพจ intel นี้ - มันมีอนิเมชั่นมากมายที่แสดงให้เห็นว่าการทำไฮเปอร์เธรดเร็วขึ้นแค่ไหน
นี่Utilization of Processor Resources
คือแอนิเมชั่นที่ดีที่สุดลองดูแล้วคลิกปุ่ม "ล่วงหน้า"
ทำไมนี้ เป็นเพราะมี 2 เธรดต่อคอร์แบ่งซีพียูในหน่วยประมวลผล 4 ตัว?
คำตอบก็คือใช่ คอร์ของซีพียูแต่ละตัวของคุณสามารถรองรับเธรดอิสระสองตัวดังนั้นทั้งหมด 4 เธรด แต่มันไม่ได้หมายความว่ามันมีประสิทธิภาพเหมือนกับซีพียูแบบควอดคอร์เดี่ยว ประสิทธิภาพการทำงานของซีพียูแบบดูอัลคอร์แบบเธรดจะต่ำกว่าซีพียูแบบควอดคอร์แบบซิงเกิล เช่นเดียวกับ AMD Phenom X4