[gull] Linux sur processeur Core Duo?

Marc Mongenet marc at mongenet.ch
Tue Aug 15 09:56:18 CEST 2006


> monter jusqu'a 32 instructions en //. Je n'ai pas connaissance de ces
> technologies dans les x86/AMD actuels; quelqu'un en sait-il plus sur ces
> processeurs ? Vu les frequences d'horloges des Intels, je doute qu'il aient
> pu se lancer dans cette voie. Il se peut qu'AMD ait integre ces techniques en
> partie.
>
> dc

Et bien la superscalarité a été inroduite avec le Pentium,
qui avait 2 ALU. Mais depuis il y a bien plus d'unités en parallèle.
C'est le but de la traduction en µops : avoir un format d'instruction
assez simple à analyser pour que le hardware puisse trouver ce
qui peut s'exécuter en parallèle, voire en désordre.

Cela dit, il n'y a pas besoin de doubler chaque unité.
Bien sûr, si on a, disons, une ALU et une unité load/store
(exemple simplifié), et bien on ne peut exécuter en parallèle
qu'une opération d'ALU et une opération load/store
(A1, L2 -> A1//L2).

Et si on n'a que des load/store à exécuter, et bien on ne
pourra rien faire en parallèle (L1,L2,L3,L4 -> L1,L2,L3,L4).

Mais si on a deux opérations d'ALU suivies de deux opérations
load/store et qu'elles sont indépendantes entre elles, et bien
on peut quand même parallèliser, en désordre
(A1, A2, L3, L4 -> A1//L3, A2//L4).

Là ou ça devient *très* compliqué, c'est si L3 déclanche une
exception (disons un défaut de page) : il faut finir A2 et
anuller L4 avant de traiter l'exception...


Tiens, d'après http://www.princeton.edu/~jdonald/research/hyperthreading/velev_lec_15.pdf
les µops du P6 (Pentium Pro, II, III) font 72 bits.
Ce document donne encore plein d'autres données
chiffrées sur l'intérieur des P6, P7 et Athlon.

Marc Mongenet



More information about the gull mailing list