Накратко моите 5 ст. по въпросите за хардуера и софтуера..
Като софтуерен специалист най-напред ще п/оставя отворен въпроса за това -
микрокода в един процесор софтуер ли е или хардуер? - нека хардуерните специалисти отговорят
който инак освен от БИОС може да се управлява/оправя и от ядрото чрез microcode_ctl
За виртуалните и реалните ядра/нишки - те всички са реални (изключвам мноого старите компютри, отпреди 10 г. дето не се намират вече, където многозадачността бе изцяло софтуерна - просто много бързо превключваха между задачите и създава впечатление за едновременно изпълнение)
Напр. програмката
CPU-Z много добре показва (на най-долния ред: Selection, Cores, Threads - Total):
в моя случай: 2 - ядра, 4 - нишки, а на работа имаме едни чудовища Xeon 8 - ядра, 8 - нишки
и ядрата и нишките са си реални хардуерни обаче по-добре е когато бр. ядра е равен на бр. нишки
тогава нямаме състезаване между 2 и повече нишки за един и същи ресурс
т.е. напр. машина с 4 ядра и 4 нишки е по-бърза от такава с 2 ядра и 4 нишки - и двете ОС ще ти ги показва като 4 процесорна машина
но не много по-бърза, не е 2 пъти напр. ами около 15%
Проблемът идва оттам, че ако двете нишки които са на едно ядро поискат един и същ ресурс едната ще трябва да изчака - напр. и двете искат да събират целочислено, тук паралелизма идва когато едната иска да прави нещо друго напр. събира числа с плаваща запетая (има си отделен конвейер за това), достъп до паметта или кеша и пр. всичко което не е в конфликт с това което иска да ползва другата т.е. те не са виртуални нишките, а са си хардуерни ..хардуерните спецове май им викат конвейер(и) в процесорното ядро.
Ако искаш да тестваш пусни един биткоин миньор (аз поне с това тествам).
При мен напр. на 4 = 2 х 2 машината
с 1 ядро постига 1.0 - 1.2 МХ
с 2 и 3 ядра дига 2.0 до 2.2 МХ - тук е линейно ускорението
с 4 ядра дига едвам 2.4 МХеша/сек - тук вече не е линейно щото те всичките 4 нишки искат да ползват целочисления конвейер ама той вече е зает от другата нишка, докато на 4 = 4 х 1 очаквам линейно да скочи от 2.0 на 4.0 МХ (ама шефа не дава да пускам на сървърите 8 = 8 х 1 та да разбера
)
А у дома напр. моят е 6 ядрен Феном 2 - ама прави една гадост като се усети че е много натоврен си ги сдвоява "хардуерно" т.е. вместо 6 има 3 ядра които работят малко по-бързо т.е. нали се сещаш от примера по-горе дето вади с 15% плюс, че всъщност другата нишка на същото ядро за да вдигне толкоз малко ще забави работата на първата с доста...
"хардуерно" е в кавички щото според мен микрокода може да мине за хардуерЗа това ако може купувайте си процесори в които бр. ядра = бр. нишки (конвейери или както още им викат там)
П.П. Примера е с битпара щото очаквам и "вейката" да се включи
П.П.П. "вейката" е "гад3вей"-ката
Може троловете вече да налазват по темата
// Малка редакция - всичко по-горе е за настолни машини! При мобилните има една подробност - там гадовете броят и комуникационния процесор - та той доскоро беше един процесор и се ползваше за управление на антената и за изчисления та имаше някои двуядрени които обаче като извадиш -1 комуникационен процесор пак си оставаш само с един за работа т.е. той комуникационния за друго не се ползва - отделен чип си е за упраление на антената (приемане, предаване, де/кодиране и т.н.)
А някои имат и: Not previously disclosed publicly, vSMP includes a fifth CPU core (the “Companion” core) built using a special low power silicon process that executes tasks at low frequency for active standby mode, music playback, and even video playback.