Le Pentium II est fourni dans un boîtier à 242 contacts regroupant le microprocesseur lui-même ainsi que les puces pour le cache de niveau 2.
Le Pentium possède par conséquent 64 lignes de données numérotées D0 à D63.
L'architecture du Pentium II peut considérée comme trois unités
d'exécution qui partagent un bassin d'instructions.
L'unité de recherche/décodage (Fetch/Decode Unit) est une unité
ordonnée qui a comme entrée les instructions du programme de l'utilisateur
provenant du cache d'instructions. Elle les décode en une série de
µopératons (µops) qui représentent le flux de données
de ce flux d'instructions. La prérecherche d'instructions est spéculative.
L'unité de lancement/exécution (Dispatch/Execute Unit) est une unité non ordonnée, dans le sens qu'elle n'exécute pas forcément les instructions dans l'ordre où elle les reçoit. Elle reçoit le flux de données et ordonnance l'exécution des µops selon les dépendances entre les données et la disponibilité des ressources. Elle enregistre ensuite temporairement le résultat de ces exécutions spéculatives.
L'unité de Complétion (Retire Unit) est une unité ordonnée. Elle détermine quand il faut retirer ces résultats temporaires et spéculatifs pour les "commettre" à l'état architectural permanent.
L'interface de bus est une unité partiellement ordonnée, responsable de relier les trois unités internes au monde réel. Elle communique directement avec le cache de niveau 2 (L2) et supporte jusqu'à quatre accès de cache simultanés.
L'unité cache d'instructions charge une ligne de cache correspondant à l'index provenant de l'unité IP_Suivante, ainsi que la ligne suivante, et présente 16 octets alignés au décodeur. Les octets préchargés sont présentés justifiés aux décodeurs d'instructions. Le début et la fin des instructions sont marqués.
Trois décodeurs parallèles acceptent ce flux d'octets marqués et chargent et décodent les instructions qui y sont contenues. Le décodeur convertit les instructions en µops triadiques (deux sources logiques et une destination logique par µop). La plupart des instructions sont converties directement en µops individuels. Certaines prennent de 1 à 4 µops et les instructions complexes exigent du microcode.
L'unité de retrait doit d'abord lire le bassin d'instructions pour trouver
des candidats potentiels pour le retrait et déterminer lesquels parmi ces
candidats sont les suivants dans l'ordre d'exécution du programme original.
Elle écrit ensuite le résultat des retraits du cycle en cours dans
la banque de registres de retrait (RRF). L'unité de retrait est capable de
retire 3 µops par cycle d'horloge.
Les écritures doivent fournir une adresse mémoire, la taille des données et les données à écrire. Elles exigent donc deux µops, l'une pour générer l'adresse et l'autre pour générer les données. Ces µops devront plue tard être recombinées pour que l'écriture soit complète.
Les écritures ne sont jamais effectuées de façon spéculative, étant donné qu'il n'y a pas de moyen transparent de les annuler. Les écritures ne sont de plus jamais réordonnées entre elles. Une écriture n'est lancée que quand l'adresse et les données sont disponibles et qu'il n'y a pas d'autres écritures plus anciennes qui attendent d'être lancées.
Le tampon de réordonnancement mémoire permet aux lectures de dépasser
d'autres lectures et des écritures en agissant comme un poste de réservation.
Il garde les lectures et écritures en suspens et les relance quand une condition
de blocage (dépendence de données ou ressource non disponible) diparaît.
Les 8 registres de virgule flottante peuvent également servir de registres de 64 bits pour les instructions Multimedia MMX. Ils portent alors le nom MM0 à MM7.
Ces mêmes 8 registres peuvent servir pour les instructions Streaming SIMD Extension du Pentium III et du Pentium IV. Ils ont alors 128 bits et portent le nom XMM0 à XMM7.
Dernière mise à jour : 2000-09-28