จำนวนคอร์ CPU ไม่ถูกต้อง


14

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

ดังภาพแสดงจำนวนโปรเซสเซอร์ที่ 4

แต่ intel i5-4210U มีเพียง 2 คอร์ดังที่แสดงด้านล่าง (รายละเอียดของ Intel เอง)

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

ดังนั้นหาก i5-4210U มีเพียง 2 คอร์มากกว่า "4" ที่ระบุในรูปที่ 1

lscpu ให้ผลลัพธ์นี้:

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 69
Stepping:              1
CPU MHz:               989.531
BogoMIPS:              4788.74
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              3072K
NUMA node0 CPU(s):     0-3

10
เพราะมันมีHyperthreadingซึ่งหมายความว่า CPU แสดงคอร์สี่คอร์ให้กับระบบปฏิบัติการแทนที่จะเป็นฟิสิคัลกายภาพสองตัวเท่านั้นเพื่อปรับปรุงประสิทธิภาพ (" # ของกระทู้ " จากแผ่นข้อมูลจำเพาะคือสิ่งที่ข้อมูล CPU ใน Ubuntu แสดงให้คุณเห็น)
JonasCz - Reinstate Monica

3
วิธีอื่น ๆ ในการค้นหานี้คือการทำlscpuและมองไปที่CPU(s), Thread(s) per coreและและCore(s) per socket Socket(s)
edwinksl

@edwinksl เพิ่มผลลัพธ์ของ lscpu
foxtrot9

2
ดังนั้นคุณจึงมีลอจิคัลคอร์ 4 "CPUs" หรือ 2 เธรดต่อฟิสิคัลคอร์ (นี่คือส่วนไฮเปอร์เธรด) 2 ฟิสิคัลคอร์ต่อซ็อกเก็ตและ 1 ซ็อกเก็ต 4 = 2 * 2 * 1
edwinksl

คุณไม่ได้ยินไฮเปอร์เธรดซึ่งมีอยู่ตั้งแต่ pentium 4
phuclv

คำตอบ:


31

CPU ของคุณมีเพียง 2 แกน แต่สนับสนุน4 กระทู้พร้อมกัน

นี่คือความสำเร็จโดยเทคโนโลยี Hyper-Threading ของ Intelที่อนุญาตให้รันเธรดที่แยกกันสองชุดพร้อมกันในเวลาเดียวกันบนแกนเดียว

ดังนั้น 2 คอร์ x 2 เธรดต่อคอร์หมายถึง 4 เธรดต่อ CPU


1
ฉันรู้เล็กน้อยเกี่ยวกับเธรดดังนั้นฉันอยากรู้ว่าวิธีนี้สามารถทำได้ในระดับฮาร์ดแวร์? ฉันหมายถึง 2 หัวข้อต่อ CPU หรือไม่
foxtrot9

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

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

5
@ foxtrot9 โดยทั่วไปแล้วการประมวลผลเธรดเดียวมักจะไม่ใช้ที่ใดก็ได้ใกล้ 100% ของ CPU core - CPU ใช้เวลารอข้อมูลในการโหลดจากหน่วยความจำและคำสั่งใดก็ตามที่ไม่ได้ใช้วงจรเล็ก ๆ ทั้งหมด (การดำเนินการ หน่วย) ในแกนกลางที่ทำสิ่งต่าง ๆ HT อนุญาตให้เธรดการประมวลผลสองเธรดใช้ร่วมกันคอร์เพื่อให้สามารถรันในขณะที่อีกเธรดกำลังรออยู่หรือทั้งคู่สามารถรันหากพวกเขาใช้ชุดการดำเนินการที่แยกจากกัน แต่เนื่องจากทั้งสองเธรดต้องแชร์ทรัพยากรบางครั้งหนึ่งหยุดอีกอันจากการทำงานดังนั้นจึงไม่เร็วเท่ากับ 2 คอร์ทั้งหมด
ฮอบส์

@ ฮอบส์คำอธิบายโดยละเอียด แต่ง่ายดีมาก! ขอบคุณสำหรับความคิดเห็นที่ให้ข้อมูลนี้ :)
ผู้บัญชาการ Byte

3

อย่างที่คุณเห็นในภาพที่คุณจัดหาจาก Intel จำนวนเธรดคือ 4จำนวนหัวข้อคือ

ดังนั้นฉันจะบอกว่าอูบุนตูกำลังแสดงจำนวนเธรดและไม่ใช่คอร์เรส


1

ในโปรเซสเซอร์ i5-4210 ของ Intel มีแกนประมวลผลทางกายภาพ 2 แกนซึ่งแบ่งออกเป็นอีก 2 แกนตรรกะ แกนประมวลผลแบบลอจิคัลเหล่านี้เกิดขึ้นได้จากเทคโนโลยีการทำเกลียวมากของ Intel จึงทำให้มันมีทั้งหมด 4 แกนดังแสดงในรูป ข้อมูลนี้จะได้รับในรูปอื่น ๆ


ฉันไม่รู้ว่าทำไมผู้คนถึงหยั่งรู้คำตอบของคุณสิ่งที่คุณพูดเป็นเรื่องจริง
Anomaly เสมือนจริง

ผู้คนโง่แล้วฉันก็ไม่รังเกียจ
Moksh

เพื่อสำรองคำตอบนี้ Wikipedia บอกว่า: "สำหรับโปรเซสเซอร์แต่ละคอร์ที่มีอยู่จริงระบบปฏิบัติการจะจัดการกับคอร์เสมือน (ตรรกะ) สองคอร์"
ความผิดปกติเสมือนจริง

ขอบคุณ @lightswitchr
Moksh

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