| [ Mardi 31 août 2010 ] |
par Guillaume Louel |
Processeur : AMD présente ses nouvelles architectures Bobcat et Bulldozer
Bobcat et Bulldozer

Introduire une architecture résolument différente est toujours un événement dans le monde des processeurs. Car si de nouvelles générations de puces sortent tous les ans, marketing oblige, en pratique il s’agit souvent de simples évolutions, des ajouts de ci de là à une architecture posée plusieurs années auparavant.En ce qui concerne le Phenom II, rien ne peut être plus vrai. Version débuguée du premier Phenom, ce dernier était lui-même copieusement basé sur l’architecture du K8, connu sous le nom d’Athlon 64. Bien entendu depuis 2003 de nombreuses améliorations sont arrivées, support de nouveaux types de mémoire, améliorations des branchements et prédictions, support de nouvelles instructions SSE… Les Phenom II semblent méconnaissables face aux Athlon 64. Reste qu’au fond des entrailles de ces puces, la manière dont ils traitent les instructions n’a pas réellement changé.Pour les puces qui remplaceront les Phenom II, un changement d’architecture drastique va s’opérer. C’est la puce qu’AMD à présenté sous le nom de Bulldozer. Bulldozer, l’après Phenom II

La question du parallélisme est aujourd’hui au cœur de tous les débats dans l’informatique. Le parallélisme est utilisé à tous les niveaux, que ce soit pour tirer un maximum de performances, ou pour réduire la consommation. L’HyperThreading d’Intel va dans ce sens, chaque cœur physique expose deux cœurs virtuels. En pratique, il n’y a pourtant qu’un seul « core » (la partie effective qui traite les instructions), mais il peut maintenir en amont deux flux d’instructions en parallèle et passer de l’un à l’autre dès que l’un des deux est bloqué. Par là, on entend qu’un calcul attends après des données mémoire par exemple et que le processeur doive attendre pour continuer d’exécuter le programme. AMD prend ici le contrepied en créant un nouveau concept, le module, qui regroupe deux cœurs. Nous avons utilisé plusieurs fois ce mot sans réellement expliquer ce qu’il veut dire. Au sens historique du terme, un cœur x86 est un pipeline complet capable d’exécuter les instructions de contrôle de flux (branchements, etc) ainsi que les instructions sur les nombres entiers (nombres sans virgules, appelés Integer/Int en anglais). De manière logicielle, ces unités pouvaient également effectuer des calculs sur des nombres à virgules (dits à virgule flottante, Float en anglais) mais pour ceux qui se souviennent des années 80 et 90, il était possible d’ajouter un coprocesseur arithmétique (le 387 par exemple venait épauler le 386). Avec le 486 DX et les générations suivantes (Pentium, etc), ce coprocesseur arithmétique aura été intégré directement dans le processeur, même s’il reste asservi pour des raisons historiques au pipeline principal. Depuis quelques années cependant, les instructions x87 ont été remplacées par les instructions SSE qui au milieu de leurs possibilités, apportent des traitements à virgule flottante bien plus rapide. Cette précision technique est importante pour comprendre la voie choisie par AMD, que nous allons détailler page suivante.
Les Processeurs déjà testés