L'X5560 è un singolo chip . Assomiglia a questo:

grep "physical id" ti sta dicendo che hai UN processore fisico installato.
Se togli il dissipatore di calore dalla parte superiore puoi vedere questo:un singolo dado fisico (a faccia in giù) :

Se potessi rimuovere quel dado e capovolgerlo, sembrerebbe così :

Su quel singolo die fisico ci sono quattro core CPU fisici costruito sul silicio :

grep "cpu cores" ti sta dicendo che il tuo processore ha quattro core fisici incorporati.
Ogni core è un singolo processore con un'unità a virgola mobile, un numero di unità di esecuzione intere, una coppia di stack di registri e qualche altra magia che consente a ciascun singolo core di eseguire efficacemente due flussi di istruzioni indipendenti (thread) alla volta.

top ti sta dicendo che tutti i processori e i core del tuo computer, collettivamente, possono eseguire otto flussi di lavoro indipendenti alla volta:ti sta dicendo che il sistema operativo è in grado di pianificare otto thread simultanei per l'esecuzione in un dato momento.
Che cpu stai usando? Quanti thread sono presenti per core fisico?
cat /proc/cpuinfo mostra il numero di core fisici mentre top mostra il numero totale di thread presenti.
Penso che la tua CPU abbia 4 core fisici e 2 core logici per core fisico. Quindi è top mostrando 8.
Inoltre i contenuti di /proc/cpuinfo è in qualche modo dipendente dall'implementazione. Come nella shell Android con root, il cpuinfo il file non contiene alcun termine cpu cores .
Tuttavia in cpuinfo ogni thread è chiamato processor : X , Dove X è il filo n. Quindi l'ultimo thread no deve essere uguale a top/htop uscita.
Risultato di nproc --all deve anche essere coerente con top/htop
top mostra una "CPU" per CPU logica; su x86, è il prodotto del numero di socket nel sistema, per il numero di core fisici per socket, per il numero di thread per core.
Il cpu cores voce in /proc/cpuinfo , sempre su x86, mostra il numero di core fisici. Per trovare il numero di core logici, come utilizzato in top , dovresti guardare siblings valore invece:
cat /proc/cpuinfo | grep "siblings" | uniq
Questo è descritto in dettaglio nella documentazione del kernel.
lscpu fornisce informazioni sulle CPU installate che sono più facili da capire rispetto a /proc/cpuinfo (o meglio, presenta le stesse informazioni in modo più semplice).