cosa significa 2 core 4 thread in cpu?

Volevo sapere cosa significa 2 core 4 thread circa una CPU? Sto parlando di questa CPU che ho

http://ark.intel.com/products/47341/Intel-Core-i5-520M-Processor-3M-Cache-2_40-GHz

Ho inizialmente pensato i5 aveva 4 core, ma credo che sia sbagliato. La mia comprensione di un thread è che è un pezzo di codice che può essere eseguito contemporaneamente (contemporaneamente) con altri thread. Quindi, cosa significa 4 thread in quel foglio di specifiche? È diverso dai thread programmati. Il numero di thread in essa è diverso dal thread del programma che creiamo. Se ha appena 2 core allora è corretto che si può eseguire solo 2 programmi paralleli anche se ha 4 thread?

Il tuo i5 ha due nuclei, ognuno dei quali può eseguire due thread a causa dell'iperthreading di intel, facendo 4 thread, al di là che si passa ad alta velocità tra i processi. Ecco una bella esplorazione di multithreading se vuoi saperne di più, ma in sostanza la tua CPU può eseguire 4 processi simultaneamente e passare ad alta velocità tra i processi.

Non sono sicuro del tuo livello di competenza sull'architettura del computer, tuttavia il Core i5 che hai citato qui implementa una forma di multi-threading noto come multithreading simultaneo (SMT). Il marchio Intel per la loro implementazione di SMT è hyperthreading.

Oltre a SMT ci sono altre forms di multi-threading, temporale multi-threading essendo uno. Per esempio, la filettatura temporale a grana fine, in cui il processre può passare da un punto a filo a each ciclo, consentendo quindi l'esecuzione pseudo-parallela di più programmi. Allo stesso modo, può esistere un multi-threading temporale a grana grossa in cui un processre può passare da un thread all'altro quando colpisce un'operazione di latenza elevata, ad esempio un accesso di memory principale sul thread corrente. I punti di commutazione esatti possono variare in base all'attuazione e ai requisiti, ad esempio l'equità o le scadenze in tempo reale.

SMT si discosta dalla filosofia del context di context per il multi-threading in quanto effettivamente ha due o più thread che eseguono su un processre contemporaneamente. Mentre l'implementazione può variare, l'objective primario è quello di sfruttare le unità funzionali del processre che sono inattive solo se è in esecuzione un solo thread e anche per sfruttare la grande licenza di tipo superscalare del processre. È ansible immaginare il multi-threading temporale come il tempo che taglia le risorse dei processri, mentre SMT come spacial slicing delle risorse.

Un'analisi dettagliata può essere trovata nel libro di Tullsen del 1995:

http://dl.acm.org/citation.cfm?id=224449

"Se ha solo 2 core, allora è corretto che puoi eseguire solo due programmi paralleli anche se ha 4 thread?" Se ha 2 nuclei il calcolo è diviso per 2 = parallelismo Tuttavia, se il sistema ha iper threading può fare il calcolo 2 nello stesso nucleo, perché, lo stesso nucleo mostra al sistema operativo fino a 2 core … core logici.

Prendi il numero di thread e lo dividi per il numero di core e che ti darà il numero di thread possono essere eseguiti simultaneamente per core del processre.

Nei precedenti tempi [sui templates precedenti di Intel] il hyperthreading è stato limitato a 1 core funzionante due thread contemporaneamente o multi cores in esecuzione 1 set di istruzioni (aka, thread) per nucleo (piuttosto inefficiente se mi chiedete). Ma con un miglior potere di calcolo e successivi sviluppi come il tuo processre i5, hai quello che mi piace call, un processre hyperthreaded multi-core, che ha corpi multipli che eseguono più set di istruzioni (alias, thread) per nucleo.

Nel tuo caso, 1 nucleo ottiene 2 thread, quindi quando fai la math hai un totale di 4 set di istruzioni (thread).

Un altro esempio: # di Cores = 4, # di thread = 8 | 8/4 = 2, quindi each core tratta 2 thread contemporaneamente (non sicuro di quale model di processre faccia questo ma sono quasi certo che uno esista).

Spero che questo aiuta il mio amico! Happy computing!

Fonte: PEARSON IT Certificazione CompTIA A + Examp Cram Cert. Manuale