next up previous
Next: Résumé #9: Les machines Up: Résumés de Organisation et Previous: Résumé #7: Grande capacité

Résumé: L'architecture PowerPC

À lire: Article ``The PowerPC 603 Microprocessor'', CACM, vol. 37, no. 6.

Vue d'ensemble

- Architecture développée en collaboration par IBM, Apple et Motorola.

- Objectif ``politique'': Empêcher Intel de contrôler le marché futur des micro-processeurs pour les ordinateurs personnels!

- Objectifs techniques:

- Incorpore les caractéristiques fondamentales des machines RISCs:

- Caractéristique importante = Machine superscalaire tex2html_wrap_inline582 Peut amorcer l'exécution de plusieurs instructions (1, 2 ou 3) à chaque cycle d'horloge via l'utilisation d'unités fonctionnelles multiples et indépendantes. Les instructions peuvent s'exécuter en parallèle et terminer leur exécution dans le désordre.

- Evolution historique: IBM 801 (Fin 70) tex2html_wrap_inline654 IBM RT PC (1986) tex2html_wrap_inline654 IBM RS/6000 (1990) tex2html_wrap_inline654 IBM RSC (POWER sur 1 seule puce) tex2html_wrap_inline654 PowerPC

- Mises en oeuvre prévues de la famille PowerPC:

Le microprocesseur PowerPC 603

- Premier processeur de la famille PowerPC à supporter entièrement l'architecture PowerPC (i.e., toutes les instructions de l'architecture sont effectivement réalisées au niveau matériel).

- Structure du pipeline:

Unités fonctionnelles:

1) Unité de répartition: Décode les instructions (sauf les branchements, qui ont déjà été envoyés à l'unité de branchement) et les envoie (jusqu'à 2 instructions par cycle) à l'unité appropriée, dans l'ordre rencontré dans le programme. Si l'unité requise est déjà occupée (ainsi que sa table de réservation associée), alors l'exécution est suspendue.

Divers mécanismes sont utilisés pour éviter les suspensions:

2) Unités d'exécution:

2.1)
Unité de branchement: Décode les instructions et exécute celles qui sont des branchements. Possède sa propre UAL pour le calcul de l'adresse destination. Si la condition peut être déterminée immédiatement, le branchement s'effectue aussitôt, autrement l'exécution se fait de façon spéculative (via prédiction statique).

Stratégie de prédiction statique des branchements: Par défaut, le matériel prédit que les branchements vers l'arrière (boucles) seront effectués alors que les branchements vers l'avant ne le seront pas. (Par contre, le compilateur peut positionner un bit de l'instruction pour indiquer que la prédiction inverse doit être faite.)

Note: Contrairement à la machine MIPS, il n'y pas de cases de délai de branchement, i.e., pas de branchements différés. Cette dernière approche fonctionne bien seulement lorsque le délai est petit; de plus, cette approche crée des problèmes dans le cas d'une machine superscalaire où les instructions ne sont pas nécessairement initiées dans l'ordre.

2.2)
Unité entière: Exécute la plupart des instructions arithmétiques entières en 1 cycle. Possède des registres indépendants de l'unité point-flottante.

2.3)
Unité de rangement/chargement: Gère les transferts entre le cache de données et les registres entiers et point-flottants. Possède sa propre UAL pour le calcul de l'addresse effective.

2.4)
Unité point-flottante: Unité avec pipeline traitant les nombres en simple ou double précision. Possède un débit maximum de 1 cycle et une latence de 3 cycles.

2.5)
Unité de registres systèmes: Gère les instructions modifiant les registres de contrôle du processeur.

3) Tampon de terminaison: Gère la terminaison (finalisation) de l'exécution des instructions (i.e., leur mise à la retraite) et contrôle l'écriture des registres physiques à partir des registres virtuels. Le tampon contient jusqu'à 5 instructions et peut en retirer jusqu'à 2 par cycle.

Caches et gestion de la mémoire:


next up previous
Next: Résumé #9: Les machines Up: Résumés de Organisation et Previous: Résumé #7: Grande capacité

Guy Tremblay
Tue Aug 27 14:04:33 EDT 1996