cosa significa 2 core 4 thread in cpu?


22

Volevo sapere cosa significano 2 core e 4 thread su una CPU? Sto parlando di questo CPU che ho

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

Inizialmente pensavo che i5 avesse 4 core ma penso di sbagliarmi. La mia comprensione di un thread è che è un pezzo di codice che può essere eseguito contemporaneamente (contemporaneamente) con altri thread. Quindi, cosa significano 4 thread nel foglio delle specifiche? È diverso dai thread programmatici. Il numero di thread all'interno è diverso dal thread del programma che creiamo. Se ha solo 2 core, è corretto che tu possa eseguire solo 2 programmi paralleli anche se ha 4 thread?


2
Una volta che fai qualche ricerca di base su en.wikipedia.org/wiki/Hyper-threading , dovrebbe avere più senso per te. Il processore che hai effettivamente ha la capacità di fare 4 istruzioni alla volta. Dovresti capire che anche una singola CPU core ha la capacità di eseguire più programmi. Semplicemente NON ha la possibilità di fare 2 istruzioni alla volta. Non sembri chiaro come funzioni effettivamente un programma.
Ramhound,

@Ramhound Intendevi presumibilmente 4 flussi di istruzioni . Poiché i5 è superscalare, può eseguire più istruzioni in parallelo anche da un singolo flusso di istruzioni. Il multithreading simultaneo consente di convertire il parallelismo a livello di thread in parallelismo a livello di istruzione, aumentando l'utilizzo delle risorse di esecuzione.
Paul A. Clayton,

Ho minimizzato la mia affermazione il numero di istruzioni per ciclo di clock è la differenza tra un Pentium D e 4th Core i5 meno la dimensione dello stampo, e i requisiti di potenza ovviamente (di nuovo semplificato)
Ramhound


Questa risposta può fornire l'edificazione: superuser.com/questions/1198459/…
Jamie Hanrahan,

Risposte:


15

Tuo i5 ha due core, ogni core può eseguire due fili a causa della Intel hyperthreading , fare 4 fili, oltre che commuta a velocità elevate tra processi. Ecco una bella esplorazione del multithreading se vuoi saperne di più, ma in sostanza la tua CPU può eseguire 4 processi contemporaneamente e passare ad alta velocità tra i processi.


> "oltre a ciò passa ad alta velocità tra i processi". Cosa rende più veloce il processo di commutazione b / n?
Talespin_Kit,

@Talespin_Kit Penso che @ Slowki si riferisse al modo in cui una CPU viene utilizzata per lavorare su più processi, quindi non si limita a 4 cose. Sono 4 discussioni di molte cose.
Matt Sephton,

3

Non sono sicuro del tuo livello di competenza in Computer Architecture, tuttavia il Core i5 che hai citato qui implementa una forma di multi-threading nota come Multithreading simultaneo (SMT). Il marchio Intel per l'implementazione di SMT è hyperthreading.

Oltre a SMT ci sono altre forme di multi-threading, il multi-threading temporale è uno. Ad esempio multi-threading temporale a grana fine in cui il processore può passare da thread diversi a ogni ciclo e quindi consentire l'esecuzione pseudo-parallela di diversi programmi. Allo stesso modo può esserci multi-threading temporale a grana grossa in cui un processore può passare da un thread all'altro quando colpisce un'operazione ad alta latenza come un accesso alla memoria principale sul thread corrente. I punti di commutazione esatti possono variare in base all'implementazione e ai requisiti, come equità o scadenze in tempo reale.

SMT si discosta dalla filosofia del cambio di contesto per il multi-threading in quanto in realtà ha due o più thread in esecuzione su un processore contemporaneamente. Mentre l'implementazione può variare, l'obiettivo principale è quello di sfruttare le unità funzionali nel processore che sono inattive se solo un thread era in esecuzione, e anche di sfruttare l'ampia questione di natura superscalare del processore. Potete immaginare il multi-threading temporale come suddivisione del tempo delle risorse dei processori, mentre SMT come suddivisione spaziale delle risorse.

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

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


0

"Se ha solo 2 core, è corretto che tu possa eseguire solo 2 programmi paralleli anche se ha 4 thread?" Se ha 2 core il calcolo è diviso per 2 = parallelismo Tuttavia se il tuo sistema ha hyper threading può fare il calcolo 2 nello stesso core, quindi lo stesso core mostra al sistema operativo fino a 2 core ... core logici.


0

Prendi il numero di thread e dividerlo per il numero di core e questo ti darà il numero di thread che possono essere eseguiti contemporaneamente per core del processore.

In passato [su precedenti modelli Intel] l'hyperthreading era limitato a 1 core che eseguiva 2 thread contemporaneamente O più core che eseguivano 1 set di istruzioni (aka, thread) per core (abbastanza inefficiente se me lo chiedi). Ma con una migliore potenza di calcolo e sviluppi successivi come il tuo processore i5, hai quello che mi piace chiamare, un processore hyperthreaded multi-core, che ha più core che eseguono più set di istruzioni (aka, thread) per core.

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

Un altro esempio: # di core = 4, # di thread = 8 | 8/4 = 2, quindi ogni core elabora 2 thread contemporaneamente (non sono sicuro di quale modello di processore faccia questo, ma sono quasi certo che ne esiste uno).

Spero che questo aiuti il ​​mio amico! Buon calcolo!

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.