• Aucun résultat trouvé

6.3 Application du théorème de contrôlabilité

7.1.2 Description du cœur e5500

Un P5040 embarque quatre cœurs e5500. Il s’agit d’un modèle de cœur développé par Freescale dans la famille des cœurs e500 [85], qui sont des cœurs PowerPC. Le cœur e5500, illustré sur la figure 7.3, embarque les composants suivants :

Caches L1. Le cache de niveau L1 est séparé au niveau données et instructions (archi- tecture Harvard). Les caches L1D et L1I ont une capacité de 32K chacuns, et sont organisés en 8 voies de 4K.

Cache L2. Le cache de niveau L2 est unifié (architecture Von Neumann) et a une ca- pacité de 512K. Il est organisé en 8 voies de 64K chacune. Il a un comportement

7.1. Cible matérielle MMU 512K L2 Cache I n t e r c o n n e c t Local Time Base

OCEAN

Shared Cache

Core System Registers (SPR)

32K L1-Instr Cache L1-I TLB L2 TLB TLB1 TLB0 TLB0 TLB1 32K L1-Data Cache L1-D TLB TLB1 TLB0 Bus Interface Unit Performance monitors Exceptions Controller Instruction Unit Load / Store Unit C o n t r o l l e r Pipeline C o n t r o l l e r C o n t r o l l e r Miss ? Evict ? Miss ? Priv. Exc ? Privilege mode

Synchronization, Message Passing Data Path Instruction Path Miss ? Evict ? Miss ? Evict ? Data Snooping Instructions Snooping Hit ? Hit ? Hit ? Hit ? Hit ? Hit ? MPIC (interrupts Controller) DDR Control- ler PCIe PCIe PCIe PCIe CCSR DCSR UART Shared Cache DDR Control- ler External Interrupt Sys. Call 64K 4K 4K DMA Local Bus Priv. Exc ? Data Line Fill Buffer Instr. Line Fill Buffer Miss ? Miss ? Hit ? Hit ? Ret. from Interrupt

Figure 7.3 – Vue d’ensemble du cœur e5500

qualifié par Freescale de “dynamic harvard”. Ce comportement se caractérise par deux propriétés :

• Les lignes de cache qui sont stockées sont étiquetées comme “cohérentes” lorsqu’elles sont accédées comme des données, et “non cohérentes” lorsqu’elles sont accédées comme des instructions. Un accès non cohérent à une ligne de cache cohérente est servi, mais pas l’inverse. Ainsi, une fois qu’une ligne de cache a été demandée en tant qu’instruction, elle ne peut plus être retournée en tant que données.

• les règles de rechargement de cache diffèrent entre données et instructions. Les instructions sont recopiées dans les deux caches, L1 et L2. Les données sont chargées dans le cache L1 uniquement, et sont copiées dans le cache L2 lorsqu’elles sont remplacées dans le cache L1.

En outre, les caches maintiennent un état de cohérence pour chaque ligne en implémentant le protocole MESI34. On pourra également noter que le cache L

1D peut être configuré en mode Write Shadow, dans lequel il propage automatique- ment au cache L2 toute requête en écriture.

Niveaux de privilèges Le cœur dispose d’un registre d’état appelé MSR (Machine

State Register), décrit dans le manuel de programmation du cœur [44]. Ce re- gistre mentionne en particulier le niveau de privilège courant sur le cœur par le bit MSR[PR]. Le mode utilisateur limite les opérations qui peuvent être effectuées sur le cœur. Ces restrictions portent sur l’exécution de certaines instructions, ainsi que la lecture et/ou l’écriture dans certains SPR. Le changement de niveau de privilège ne peut se faire que lors d’une exception du mode utilisateur vers le mode superviseur, et lors d’un retour sur exception dans le sens inverse.

Registres de configuration (SPR). Le cœur e5500 dispose d’un ensemble de registres de configuration du cœur appelés SPR (Special Purpose Register). L’accès en

34. Modified, Exclusive, Shared, Invalid

Chapitre 7. Cas d’étude sur un processeur COTS

lecture et en écriture à ces registres se fait par des instructions assembleur dédiées. L’accès à certains registres est privilégié.

MMU. Le cœur e5500 dispose d’une MMU35 qui implémente des mécanismes de pagi- nation. Une page est définie par

• Une fenêtre dans l’espace d’adressage effectif vu par le logiciel

• Une fenêtre de même taille dans l’espace d’adressage physique vu du proces- seur

• Un moyen d’identifier le logiciel qui a le droit d’utiliser cette page. Sur le cœur e5500, il s’agit du numéro de processus et du niveau de privilège.

• Les opérations (lecture, écriture, chargement d’instructions) autorisées dans cette page

• Des attributs, appelés WIMGE :

W. Write through. Une requête en écriture est automatiquement propagée au cache de niveau inférieur, puis à la mémoire principale, même si elle est servie par un cache. Dans le cas inverse, on parle de configuration write-back.

I. cache Inhibited. Une requête associée à une page non cachable est ignorée par les caches, y compris les caches partagés, et est automatiquement propagée à la mémoire principale ou au périphérique concerné.

M. Memory coherency required. Une page cohérente entraîne l’activation des mécanismes de cohérence de cache.

G. Guarded. Une requête en données associée à une page gardée ne peut être émise spéculativement, c’est-à-dire tant que l’exécution de l’instruction concernée dépend encore de la prédiction de branchements.

E. Endianness.

La MMU dispose de deux niveaux de caches appelées TLB36, le second étant directement programmable. Ce dernier niveau contient un cache de 512 entrées appelé TLB0, organisé en quatre voies pour les pages de 4K indexé sur l’adresse effective, ainsi qu’un cache de 64 entrées, entièrement associatif, pour les pages de taille variable.

Chaque entrée dans la TLB définit une page. Il n’y a pas de table des pages au sens classique du terme maintenue par le matériel. Un défaut de page entraîne directement une exception dite Instruction TLB miss ou Data TLB miss. Un défaut de droits d’accès entraîne une exception Instruction ou Data Storage Interrupt. Dans tous les cas ces exceptions enclenchent le mode superviseur sur le cœur. Timer interne. Le cœur e5500 dispose de plusieurs registres offrant les fonctions d’un

timer. Parmi ceux-ci, nous retenons la base de temps (Time Base), qui est im- plémentée comme un registre de 64 bits s’incrémentant selon un circuit d’horloge partagé entre les cœurs, dont on sait qu’il est synchrone, i.e. le déphasage entre

35. Memory Management Unit 36. Translation Lookaside Buffer

7.2. Description du cas d’étude