Кількість ядер процесора здається невірним


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 , що означає, що процесор представляє ОС чотири ядра, а не два фізичні, щоб покращити продуктивність. ("Кількість потоків " на аркуші специфікації - це те, що вам показує інформація про процесор в Ubuntu)
JonasCz - Відновіть Моніку

3
Інший спосіб з’ясувати це - це зробити lscpuі подивитися CPU(s), Thread(s) per coreі Core(s) per socketта Socket(s).
edwinksl

@edwinksl, доданий результат lscpu.
foxtrot9

2
Таким чином, у вас є 4 "процесора" ака-логічних ядра, 2 потоки на фізичне ядро ​​(це частина гіперточення), 2 фізичні ядра на сокет і 1 сокет. 4 = 2 * 2 * 1.
edwinksl

ви не чули гіпертонування, яке існує з часу пентию 4?
phuclv

Відповіді:


31

Ваш процесор має лише 2 ядра, але підтримує 4 паралельних потоку .

Це досягається технологією Hyper-Threading від Intel, яка дозволяє запускати дві окремі нитки паралельно одночасно на одному єдиному ядрі.

Отже, 2 ядра х 2 нитки на ядро ​​означає 4 потоки на процесор.


1
Я мало знаю про теми, тому мені цікаво, як цього можна досягти на апаратному рівні? Я маю на увазі 2 потоки на процесор?
foxtrot9

7
Я не можу реально почати пояснювати всю концепцію, що стоїть тут над гіпер-ниткою, це може підірвати відповідь. Натомість я хотів би запропонувати вам прочитати відповідну статтю у Вікіпедії або нагодувати свою улюблену пошукову систему "гіперточенням".
Байт-командир

6
Коротше кажучи, можна сказати, що ядро, здатне до гіперточування, має деякі елементи (архітектурний стан, тобто регістри тощо), дублюються, а інші (механізм виконання, кеш) спільні.
Байт-командир

5
@ foxtrot9, в основному, один потік виконання зазвичай не використовує ніде близько 100% ядра процесора - процесор витрачає час в очікуванні завантаження даних з пам'яті, і будь-яка інструкція не використовує всі невеликі схеми (виконання одиниці) в ядрі, які роблять різні речі. HT дозволяє двом потокам виконання ділити ядро, тому один може запускатися, поки інший чекає, або вони обидва можуть працювати, якщо вони використовують роз'єднані набори одиниць виконання. Але оскільки обидва потоки мають спільний ресурс, іноді одна зупиняє роботу іншої, тому це не так швидко, як 2 цілих ядра.
варення

@hobbs Детальне, але просте пояснення, чудово! Дякую за цей інформативний коментар :)
Byte Commander

3

Як ви бачите на зображенні, яке ви надали від Intel, кількість потоків - це 4.

Тому я б сказав, що Ubuntu показує кількість потоків, а не ядер


1

У процесорі i5-4210 Intel є 2 фізичні ядра, які далі розбиваються на 2 логічні ядра; ці логічні сердечники досягаються технологією Hyper Threading. Таким чином, це складає всього 4 ядра, як показано на малюнку. Ця інформація також наведена на іншому малюнку.


Я не знаю, чому люди спростовують вашу відповідь, те, що ви сказали, є правдою.
Віртуальна аномалія

Тоді люди німі, я не проти.
Мокш

Тільки для резервного копіювання цієї відповіді Вікіпедія говорить: "Для кожного ядра процесора, який фізично присутній, операційна система має два віртуальних (логічних) ядра".
Віртуальна аномалія

Thnx @lightswitchr
Moksh

1
Я думаю, що люди беруть нахил, тому що ви сказали, що є два фізичних ядра та два логічних ядра. Це неправда, кожне фізичне ядро ​​розділено на два логічних ядра, тому є чотири логічних ядра (по два працюють на кожному фізичному ядрі).
Рунеморо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.