Le parole "CPU", "processore" e "core" sono usate in modi alquanto confusi. Si riferiscono all'architettura del processore. Un core è la più piccola unità indipendente che implementa un processore generico; un processore è un assemblaggio di core (su alcuni sistemi ARM, un processore è un assemblaggio di cluster che a loro volta sono assemblaggi di core). Un chip può contenere uno o più processori (i chip x86 contengono un singolo processore, in questo senso della parola processore ).
Hyperthreading significa che alcune parti di un core sono duplicate. Un core con hyperthreading viene talvolta presentato come un assemblaggio di due "nuclei virtuali" - il che significa non che ogni core è virtuale, ma che il plurale è virtuale perché questi non sono in realtà core separati e a volte dovranno aspettare mentre l'altro core è facendo uso di una parte condivisa.
Per quanto riguarda il software, c'è solo un concetto che è utile quasi ovunque:la nozione di thread paralleli di esecuzione. Quindi nella maggior parte dei manuali software, i termini CPU e processore sono usati per indicare qualsiasi componente hardware che esegue il codice del programma. In termini hardware, questo significa un core o un core virtuale con hyperthreading.
Quindi top
ti mostra 4 CPU, perché puoi avere 4 thread in esecuzione contemporaneamente. /proc/cpuinfo
ha 4 voci, una per ogni CPU (in questo senso). Il processor
numeri (che sono il numero del cpuNUMBER
voci in /sys/devices/system/cpu
) corrispondono a questi 4 thread.
/proc/cpuinfo
è uno dei pochi posti in cui si ottengono informazioni su quale hardware implementa questi thread di esecuzione:
physical id : 0 siblings : 4 core id : 0 cpu cores : 2
significa che cpu0
è uno dei 4 thread all'interno del componente fisico (processore) numero 0, e si trova nel core 0 tra i 2 in questo processore.
Rispondo solo alla tua prima domanda. Nell'output di cat /proc/cpuinfo
puoi vedere le seguenti informazioni:-
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
Puoi vedere il conteggio di siblings is 4
e cpu cores is 2
. cpu cores
essendo 2 è quel numero totale di core nel processore che può essere verificato dalle specifiche fornite nell'URL di Intel che hai fornito. Allo stesso modo siblings
è quello determinato dal numero di thread fornito dall'HTT di Intel.
Allo stesso modo, per l'ID fisico è 0
che indica che c'è un solo chip del processore e per gli ID core puoi vedere 0 and 1
ovvero 2 core nel processore.
Aggiornamento: Aggiungo le risposte alle altre domande.
E il turbo boost? Tutti i core sono turbo boost o solo fisici?
Bene, dirò che tutti i core attivi sono potenziati con il turbo. Ehi amico, avresti dovuto dare un'occhiata agli esempi della nostra amata Wikipedia. Spiegato anche con i calcoli.
Any method in ubuntu to get current cpu freq. if processor is on turbo boost or not.
Turbo boost o no puoi visualizzare i dettagli della frequenza nell'output di lscpu
. E per un risultato raffinato:-
lscpu | grep Hz
Puoi provare questo nel terminale:
sudo lscpu
Questo ti darà una panoramica del tratto fisico della tua cpu. Per quanto riguarda il turbo boost o meno, questo è un controllo puramente hardware rispetto al sistema operativo stesso, quindi a meno che Intel non disponga di driver specifici per Linux in grado di regolare la velocità del processore, non esiste un solido vantaggio per controllare lo stato del turbo boost (a meno che non ci sia un codice di comando per Controlla altri forum se ci sono indizi sulla tua domanda).
Per quanto mi riguarda, questo è ciò che ottengo quando digito il comando sopra. La mia AMD ha detto che è quad core, ma il mio core fisico elencato qui è solo 2, con 2 thread per core (aggiunge fino a 4 core). Sto usando il processore AMD A10 APU 5750m.
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: AuthenticAMD
CPU family: 21
Model: 19
Stepping: 1
CPU MHz: 2500.000
BogoMIPS: 4990.51
Virtualization: AMD-V
L1d cache: 16K
L1i cache: 64K
L2 cache: 2048K
NUMA node0 CPU(s): 0-3