Medic
Le serveur est vide
Scout
Le serveur est vide
Pyro
Le serveur est vide
Spy
Le serveur est vide
Uber
Le serveur est vide
Jackson
Le serveur est vide
Lenzi
Le serveur est vide
Raimi
Le serveur est vide
Rodriguez
Le serveur est vide
Fulci
Le serveur est vide
Romero
Le serveur est vide
O'bannon
Le serveur est vide
Boyle
Le serveur est vide
Craven

| Nom | Score |
|---|---|
| Murrue | 4294967295 |
| Shlaguevuk | 3 |
| Sheraf | 2 |
| Zib | 2 |
| [CPC] Philéas Frogg | 2 |
| [Yipikae]...RoOlfenstein | 1 |
| Guybrush | n00b |
| Cubbe | n00b |
Wood
Le serveur est vide
Leconte
Le serveur est vide
Le Pentium 4 est un processeur résolument tourné vers le multimédia, c'est-à-dire qu'il doit être en mesure de traiter rapidement de grosses quantités d'informations (flux audio, vidéo). Comme nous le verrons en étudiant son architecture, celle-ci a été pensée pour limiter au maximum les goulets d'étranglements, tant au niveau de la capacité de calcul que du transfert des données dans le processeur et entre le processeur et le reste du système. L'objectif principal du Pentium 4 est donc le débit.
NetBurst a ainsi été créée avec deux lignes directrices :
La contrainte technologique
pour les hautes fréquences réside dans le découpage du pipeline. Le principe
est le suivant : plus le pipeline comprend d'étapes, plus simples sont
les étapes, et d'un point de vue physique du transistor, plus vite elles
s'effectuent, permettant ainsi une fréquence de fonctionnement élevée.
L'architecture NetBurst repose sur une technologie de pipeline à 20 niveaux
de profondeurs (à comparer avec les pipelines à 5 niveaux du Pentium et
à 10 niveaux des Pentium Pro/II/ !!!) et qui lui vaut le nom Hyper
Pipelined.
Les 20 étapes du pipeline couvrent les quatre grandes étapes du traitement des instructions :
Le principal défaut d'un pipeline
est qu'il fournit un débit optimal s'il est constamment alimenté en instructions
et jamais interrompu.
Or, en pratique, le pipeline est régulièrement soumis à des conflits qui
interrompent son fonctionnement. Parmi ces conflits, on distingue :
Les deux premiers types de conflits engendrent des états d'attente dans le pipeline (ou « bulles »). La méthode utilisée pour pallier à ces conflits réside dans l'exécution dans le désordre, ou Out-Of-Order Execution (OOO). Cette solution existe déjà sur le noyau P6.
Le conflit de branchement est en revanche beaucoup plus pénalisant car en cas d'échec cas il nécessite de vider complètement le pipeline, opération d'autant plus pénalisante que le pipeline est long, et de le remplir à nouveau. Afin de limiter les effets néfastes des conflits de branchement, le Pentium 4 utilise deux mécanismes de prédiction de branchement, tout comme sur le Pentium !!! :
La prédiction de branchement
est un facteur de performances important, car le remplissage du pipeline
est une opération très coûteuse en cycles processeur ; en effet, le pipeline
n'est capable de traiter que des micro-opérations (µops), elles-mêmes
étant le résultat du décodage des instructions plus complexes arrivant
dans le bus du processeur.
Afin d'accélérer cette phase de décodage, les processeurs modernes multiplient
les unités de décodage. Ainsi le Pentium !!! et l'Athlon sont capables
de décoder jusqu'à trois instructions IA-32 par cycle. Le Pentium 4 quant
à lui utilise une technique différente : il n'est capable de décoder qu'une
seule instruction IA-32 par cycle, mais en revanche il dispose d'une mémoire
tampon permettant de stocker le résultat des décodages ; il s'agit du
Trace Cache.
A la différence d'un cache code classique qui contient des instructions
non décodées, le Trace Cache est inséré dans les premières étapes du pipeline,
il contient donc des µops directement utilisables par les étapes suivantes
du pipeline.
Ce système présente deux intérêts majeurs :
Cependant le Trace Cache présente
quelques désagréments, liés au fait qu'il est une mémoire insérée dans
le pipeline. En effet, rechercher une information dans une mémoire n'est
pas immédiat, et la latence engendrée dépend directement de sa taille
et de son organisation. Afin de ne pas insérer trop de latences au sein
même du pipeline, le Trace Cache se doit d'avoir une taille limitée. Et
plus la taille est faible, moins les chances d'y trouver l'information
sont grandes, c'est là l'éternel dilemme des mémoires caches.
L'autre désavantage est lié à l'architecture physique de la mémoire qui
occupe une surface assez importante dans la puce. Le fonctionnement optimal
du pipeline nécessite que les unités impliquées dans les étapes successives
soient le plus rapprochées possible d'un point de vue physique, afin de
réduire la distance de parcourt des signaux. A ce titre, le Trace Cache
représente une importante quantité de transistors, et propager une donnée
jusqu'à l'étape suivante du pipeline peut s'avérer problématique en terme
de distance. Le résultat est que le pipeline possède une étape dédiée
à la propagation du signal depuis le Trace Cache vers l'étape suivante,
justement nommée étape Drive. Le pipeline du Pentium 4 possède en tout
deux étapes Drive dédiées à la propagation du signal.
Au final, le Trace Cache s'avère plus efficace qu'un cache code classique, et Intel prétend qu'un Trace Cache de 12K µops équivaut à un cache code L1 de 16 à 18Ko.
Les µops fournies par le Trace Cache continuent leur chemin dans le pipeline du P4 pour arriver dans l'unité de réordonnancement, ou « Out-of-Oder execution logic ». Le rôle de cette unité, déjà présente dans l'architecture P6, est d'optimiser l'ordre d'exécution des µops afin d'éviter les conflits de ressources et de dépendances, nuisibles au pipeline. Les µops sont alors réparties vers les unités de calcul.