web-dev-qa-db-fra.com

Qu'est-ce que 2 threads de base 4 signifie en CPU?

Je voulais savoir ce que 2 noyaux 4 fils signifient à propos d'un processeur? Je parle de ce cpu que j'ai

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

Au départ, je pensais que i5 avait 4 cœurs mais je me trompe. D'après ce que je comprends des threads, il s'agit d'un bloc de code pouvant être exécuté simultanément (simultanément) avec d'autres threads. Alors, que signifie 4 discussions dans cette fiche technique? Est-ce différent des threads programmatiques? Le nombre de threads présents est-il différent du thread de programme que nous créons? S'il ne comporte que 2 cœurs, est-il exact que vous ne pouvez exécuter que 2 programmes parallèles, même s'il comporte 4 threads?

20
user734861

Votre i5 a deux cœurs, chacun pouvant exécuter deux threads en raison de l'hyperthreading d'Intel , ce qui en fait quatre, au-delà il bascule à grande vitesse entre les processus. Voici une belle explication du multithreading si vous voulez en savoir plus, mais votre processeur peut essentiellement exécuter 4 processus simultanément, et basculer à grande vitesse entre les processus .

14
user270595

Je ne suis pas sûr de votre niveau d'expertise en architecture informatique. Cependant, le Core i5 que vous avez mentionné ici implémente une forme de multi-threading appelée multithreading simultané (SMT). La marque de commerce d'Intel pour leur implémentation de SMT est l'hyperthreading.

Outre SMT, il existe d'autres formes de multi-threading, le multi-thread temporel en étant une. Par exemple, le multi-threading temporel à grain fin où le processeur peut basculer entre différents threads à chaque cycle et permettre ainsi l’exécution pseudo-parallèle de plusieurs programmes. De même, il peut exister un multi-thread temporel à grains grossiers dans lequel un processeur peut basculer entre les threads lorsqu'il rencontre une opération à latence élevée, telle qu'un accès à la mémoire principale sur le thread en cours. Les points de commutation exacts peuvent varier en fonction de la mise en œuvre et des exigences, telles que l'équité ou les délais en temps réel.

SMT s'écarte de la philosophie de commutation de contexte pour le multi-threading dans la mesure où deux ou plusieurs threads s'exécutent simultanément sur le même processeur. Bien que l'implémentation puisse varier, l'objectif principal est d'exploiter les unités fonctionnelles du processeur qui sont inactives si un seul thread était en cours d'exécution, ainsi que d'exploiter la nature superscalaire à problème large du processeur. Vous pouvez imaginer le multi-thread temporel comme un découpage temporel des ressources des processeurs, alors que SMT comme un découpage spatial des ressources.

Une analyse détaillée peut être trouvée dans l'article de Tullsen de 1995:

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

3
Rev

"S'il ne contient que 2 cœurs, est-il exact que vous ne pouvez exécuter que 2 programmes parallèles, même s'il comporte 4 threads?" Si le calcul est à 2 cœurs, le calcul est divisé par 2 = parallélisme. Toutefois, si votre système est doté de l'hyper threading, il peut effectuer les 2 calculs dans le même cœur. Par conséquent, le même cœur est présenté au système d'exploitation sous la forme de 2 cœurs ... cœurs logiques.

0
tizoc

Prenez le nombre de threads et divisez-le par le nombre de cœurs, ce qui vous donnera le nombre de threads pouvant être exécutés simultanément par coeur de processeur.

Auparavant, l'hyperthreading [sur les modèles Intel précédents] était limité à 1 cœur exécutant 2 threads simultanément OR plusieurs cœurs exécutant 1 jeu d'instructions (aka, thread) par cœur (assez inefficace si vous me demandez). Mais avec une meilleure puissance de calcul et des développements ultérieurs tels que votre processeur i5, vous avez ce que j'aime appeler un processeur multi-cœur hyperthreaded, qui a plusieurs cœurs exécutant plusieurs jeux d'instructions (ou threads) par cœur.

Dans votre cas, 1 noyau reçoit 2 threads, donc lorsque vous faites le calcul, vous avez un total de = 4 jeux d'instructions (threads).

Autre exemple: # de cœurs = 4, # de threads = 8 | 8/4 = 2, donc chaque cœur traite 2 threads simultanément (vous ne savez pas quel modèle de processeur le fait mais je suis presque sûr qu'il en existe un).

J'espère que cela aide mon ami! Bon calcul!

Source: Certification PEARSON IT CompTIA A + Examp Cram Cert. Manuel

0
khoreyrs