Test AMD Bulldozer : FX-8150

1 : Introduction 2 : Carte-mère : AM3+ obligatoire 3 : Architecture Bulldozer : le concept 5 : Détails de l’architecture (2) 6 : Performances par core 7 : Gestion de la consommation 8 : Le Turbo Core remanié 9 : Feuille de route AMD 2011-2014 10 : AMD Zambezi, Valencia et Interlagos 11 : Configuration de test et benchmarks 12 : Résultats : PCMark 7 13 : Résultats : 3DMark 11 14 : Résultats : Sandra 2011 15 : Résultats : création de contenu 16 : Résultats : bureautique 17 : Résultats : encodage 18 : Résultats : Crysis 2 19 : Résultats : F1 2011 20 : Résultats : World of Warcraft: Cataclysm 21 : Overclocking (refroidissement par air) 22 : Consommation 23 : Premier aperçu de Bulldozer sous Windows 8 24 : Conclusion

Détails de l’architecture (1)

Front-end partagé

Comme nous l’avons déjà signalé, les étages de chargement (fetching) et de décodage des modules Bulldozer sont partagés entre leurs deux cores. AMD utilise une approche de type « multithreading entrelacé » pour suivre à la volée l’identificateur de chaque instruction, décider quel thread a le plus besoin d’être terminé en priorité et effectuer les opérations pour le thread en question. Pour que les deux threads puisse progresser, le module peut changer son fusil d’épaule à chaque cycle.

AMD a découplé le prédicteur de cible de branchement de l’étage de fetching d’instruction, celui-ci lui permet de prendre de l’avance sur ce dernier lorsqu’il se retrouve coincé quelque part. D’après AMD, le découplage de ces composants a surtout l’avantage d’introduire une nouvelle fonctionnalité nommée prediction-directed instruction prefetch, qui se caractérise par une précision et un rendement énergétique très élevés.

La prédiction de branchement est guidée par des caches de cibles de branchement (dits BTB) L1 (à 512 entrées) et L2 (à 5000 entrées). Ce pipeline est chargé d’effectuer les prévisions nécessaires pour remplir, et maintenir aussi pleines que possible, deux files d’attente (une par thread) contenant les futures adresses à charger (fetch) ; ce sont ces files d’attente qui alimentent ensuite le pipeline de fetching d’instructions.

Les adresses pénètrent alors dans le cache d’instructions bidirectionnel (64 Ko) du pipeline de fetching, cache partagé entre les deux threads, qui se font concurrence de manière dynamique pour y accéder. Vient ensuite la file d’attente de fetching, qui alimente en instructions x86 un pipeline de décodage composé de quatre décodeurs x86 ; ceux-ci, enfin, envoient quatre instructions par cycles aux planificateur (schedulers).

Lorsqu’une erreur de prédiction se produit (l’adresse recherchée n’est pas disponible dans le cache des instructions), une requête est envoyée au cache L2 puis, si nécessaire, transmise à la mémoire système, ce qui introduit évidemment une latence importante. Pendant que la requête est en cours de traitement, les adresses suivantes de la file d’attente sont passées en revue afin de vérifier si elles sont elles aussi absentes du cache. Si c’est le cas, une autre requête est envoyée au cache L2 pendant que la première revient, ce qui permet de gagner du temps.

Deux unités de traitement des entiers

Du front-end, les opérations décodées passent ensuite dans l’un des deux cores de traitement des nombres entiers, où elles sont entièrement exécutées dans le désordre. Chaque core contient deux unités d’exécution et de unités de génération d’adresses.

Chaque core est également doté de son propre cache de données L1, à prédiction de voie et d’une taille de 16 Ko, ainsi que de caches de données L1 nommés TLB (data translation lookaside buffers) à 32 entrées ; ils emploient par ailleurs des unités de chargement/stockage out-of-order capables d’effectuer deux opérations de chargement de 128 bits par cycle ou une opération de stockage de 128 bits par cycle ; enfin, les deux cores se partagent également un cache TLB L2 à 1024 entrées et huit voies.

Sommaire :

  1. Introduction
  2. Carte-mère : AM3+ obligatoire
  3. Architecture Bulldozer : le concept
  4. Détails de l’architecture (1)
  5. Détails de l’architecture (2)
  6. Performances par core
  7. Gestion de la consommation
  8. Le Turbo Core remanié
  9. Feuille de route AMD 2011-2014
  10. AMD Zambezi, Valencia et Interlagos
  11. Configuration de test et benchmarks
  12. Résultats : PCMark 7
  13. Résultats : 3DMark 11
  14. Résultats : Sandra 2011
  15. Résultats : création de contenu
  16. Résultats : bureautique
  17. Résultats : encodage
  18. Résultats : Crysis 2
  19. Résultats : F1 2011
  20. Résultats : World of Warcraft: Cataclysm
  21. Overclocking (refroidissement par air)
  22. Consommation
  23. Premier aperçu de Bulldozer sous Windows 8
  24. Conclusion