Come può il mio computer avere 8 CPU ma solo 4 core? Sono confuso su questi due concetti.

Il tuo computer ha una CPU con 4 core di esecuzione, ma il tuo monitor software mostra che ne ha 8. Questo è molto spesso qualcosa che vedresti con l'hyper-threading, che la maggior parte dei processori moderni su set di istruzioni x86/x64 possono fare.

Mentre ci sono solo 4 cose che il tuo particolare processore può fare fisicamente in una volta, esso può prepararsi a fare più lavori non correlati in modo più rapido ed efficiente (per molte misure, meno efficientemente in altre) impostando compiti da eseguire in più threads e passando da uno all'altro. Ogni core ottiene due thread che alimentano un'area di esecuzione, così ogni dato core della CPU può scegliere di eseguire compiti da uno di questi thread quando diventa disponibile senza lavare l'altra informazione dalla pipeline della CPU ogni volta. Fa aspettare alcune istruzioni per l'elaborazione (aumento della latenza delle istruzioni), ma le rende pronte per essere elaborate in modo veloce. Questo può essere un bene o un male per le prestazioni. Se avete bisogno di fare molti compiti di calcolo generali e passare spesso da un processo all'altro, è un bene! Se avete bisogno di ottenere i tempi di trasferimento più veloci possibili per il vostro stack di rete è molto negativo, poiché le vostre informazioni potrebbero dover aspettare alcune frazioni di secondo per essere elaborate poiché il core del processore sta facendo qualcos'altro e il vostro comando è bloccato in attesa nel secondo thread.

Pensate a uno studente universitario che ha due compiti da scrivere, entrambi da consegnare domani. Mentre lo studente può lavorare su un solo documento alla volta, lui o lei può tenere due diversi documenti word aperti sul desktop allo stesso tempo e, quando si presentano dei pensieri ispirati, può facilmente passare da un documento all'altro per scriverli. Questa è la stessa cosa concettuale di un hyperthread. Si lavora solo su un documento alla volta, ma mettendo in secondo piano l'altra cartella di lavoro, minimizzandola invece di chiudere completamente l'editor, è più veloce per lo studente tornare a lavorare sull'altra.