Nous n'avons pas été les premiers à remarquer que les ordinateurs compacts tels que le Intel Compute Stick ne sont pas assez bons en termes de performances. Se familiariser avec un appareil similaire de Biostar, les attentes n'étaient pas les plus optimistes. Comme les plus jeunes modèles d'ordinateurs portables, Racing P1 fonctionne sur l'un des processeurs les plus faibles de la famille Atom Z8000. Cependant, la puce x5-Z8350 choisie par Biostar est même une étape, mais plus productive que son frère cadet. Essayons d'évaluer les performances de cette plateforme qui, grâce aux efforts de Biostar, n'est plus un stick, mais ce n'est pas non plus un ordinateur portable.
Fig 1 .
USB 3.0 / 2.0, un emplacement pour carte SD, des contacts de rétroéclairage, une prise casque et un bouton d'alimentation sur le panneau avantLes outils utilisés sont le benchmark NCRB (NUMA CPU et RAM Benchmarks) pour Win64 et l'utilitaire multiplateforme pour identifier le processeur JavaCPUID.
CPU
L'instruction CPUID confirme que le processeur Intel Atom x5-Z8350 est installé sur la plate-forme Biostar Racing P1 . Sa fréquence nominale est de 1,44 GHz, ce qui ne l'empêche cependant pas d'accélérer légalement à 1,92 GHz si nécessaire. Même avec une courte connaissance de cette plate-forme, le paradoxe est évident: son fonctionnement dans la plage de 1,44 à 1,92 est plus une règle qu'une exception.
Fig 2 .
Spécifications d'usine d'Intel Atom x5-Z8350La décision du processeur x5-Z8350 de sélectionner la fréquence d'horloge minimale ou standard et de démarrer le mode Turbo est basée sur une analyse de la charge et de la température de fonctionnement. Le cadre SDP (Scenario Dissipated Power) définit la consommation électrique typique d'un appareil. Les mécanismes de contrôle évaluent indépendamment la situation et, dans le cas d'une charge "légère", réduisent la consommation d'énergie de la puce. La possibilité d'activer le mode Turbo est fonction de la température, de sorte que les résultats des tests d'été et d'hiver peuvent varier. En général, le Racing P1 fait également «changer de chaussures» pour la saison.
Allant au-delà de la portée de l'étude, nous notons que la postcombustion conduit à une consommation allant jusqu'à 7 watts sur les lignes électriques ~ 220 V.Le mode croisière Racing P1 réduit d'environ cette valeur de moitié, le mode veille nécessite un peu plus de 2 watts du secteur (le contrôle de la consommation a été effectué avec un wattmètre domestique normal) .
Fig 3 .
CPUID sur Intel Atom x5-Z8350 CaractéristiquesIntel Atom x5-Z8350 fonctionne avec des données d'une capacité maximale de 128 bits. Les extensions fonctionnelles modernes AVX 256/512 ne sont pas prises en charge. Cela signifie que notre outil de mesure sera un ensemble d'instructions vectorielles SSE 128, et l'objet de mesure - mémoire cache et RAM dynamique.
Fig 4 .
Fenêtre de sélection des informations système et du mode de test pour l'utilitaire NCRB: le menu de gauche affiche les jeux d'instructions, y compris les extensions fonctionnelles prises en charge par le processeurUne digression importante est appropriée ici: dans le cas général, la capacité maximale des opérandes ne signifie pas une performance maximale. Ainsi, un certain nombre de processeurs AMD jusqu'à AM2, inclus, traitent deux téléchargements 64 bits avec des instructions MOV classiques plus rapidement qu'une charge SSE 128 bits avec des instructions MOVAPD. Rappelant cela, avant d'expérimenter, nous nous sommes assurés expérimentalement - l'utilisation du SSE pour l'Atom x5-Z8350 est en effet le scénario le plus productif.
Cache L1
En règle générale, la taille du cache est un multiple de la puissance de deux. Au premier niveau, le fabricant essaie de le répartir uniformément entre les instructions et les données. Tous ces canons ne sont pas respectés par l'architecture du processeur x5-Z8350. Chacun de ses quatre cœurs possède 32 kilo-octets de cache pour les instructions et 24 kilo-octets pour les données.
Fig 5 .
Classification des niveaux de cacheUn certain nombre de sources donnent le produit de la taille de la mémoire cache d'un cœur par leur nombre, ce qui donne une vue plus impressionnante: cache d'instructions de 128 Ko et cache de données de 96 Ko. La page officielle est traditionnellement silencieuse sur le cache L1, au moins au moment de la rédaction de cet article.
Notez que le cache de niveau zéro (similaire au cache de trace L1), qui stocke les instructions décodées et améliore l'efficacité des cycles courts, n'est pas déclaré par l'instruction CPUID. La vérification de sa disponibilité et l'analyse du fonctionnement méritent une publication séparée.
Théories et pratiques: performances du cache
La mesure de la vitesse du cache consiste en des opérations cycliques de lecture ou d'écriture d'un bloc dont la taille est inférieure à la taille du niveau de cache étudié, et donc les opérations d'accès aux données sont des hits de cache. En effet, le choix de la cible (L1, cache L2 ou DRAM) est déterminé par la taille du bloc de données traité.
Après avoir précisé l'entité testée, nous procédons à la prise en compte des opérations au niveau des instructions machine. Dans notre expérience, nous utilisons un cycle étendu de seize instructions SSE2 MOVAPD, dont chacune transmet un opérande de 128 bits entre la mémoire et l'un des registres XMM. Par conséquent, 16 registres XMM0 ... XMM15 sont entièrement chargés en une seule itération de la boucle.
Pour être complet, nous notons que l'instruction MOVAPD peut également être utilisée pour transférer des données entre deux registres XMM, mais dans notre cas, les opérations de registre ne donneront pas une idée des performances des objets mémoire. La performance maximale est assurée par l'exigence d'alignement requise par l'instruction MOVAPD: l'adresse d'opérande doit être un multiple de 16 octets (128 bits).
Repères de cache L1
Alors que le bloc de lecture ou d'écriture est plus petit que la taille du cache L1 (sur le graphique, il s'agit de l'axe X), le taux de change est élevé. Dès qu'un bloc dépasse L1, des échecs de cache se produisent et la vitesse baisse. Évidemment, lors de l'évaluation des performances, l '«étape supérieure» correspondant à la partie gauche du graphique est informative.
Fig 6 .
Graphique de la vitesse de lecture d'un bloc de données sur sa taille;
Quartier X = Taille L1La vitesse maximale en mégaoctets par seconde (MBPS) correspond au nombre minimum de ticks par instruction ( CPI, Clocks Per Instruction ) et est d'environ 30 GBPS .
Fig 7 .
Le tracé de la vitesse d'écriture du bloc de données sur sa taille;
Quartier X = Taille L1Comme le montrent les graphiques, le point d'inflexion pour la lecture de L1 correspond à une valeur théorique de 24 kilo-octets. Pour mémoire, la politique de mise en cache utilisée dans ce processeur se caractérise par une «baisse précoce» de la vitesse, qui fera l'objet d'une étude distincte. Mais maintenant, on peut le noter - cette politique ne contribue pas à enregistrer des indicateurs de performance, même si dans certains cas il est possible d'éviter le colmatage de L1 avec des données inutiles.
Les résultats montrent la vitesse développée par un cœur du processeur Atom x5-Z8350. Un certain nombre de tests, en particulier AIDA64, montrent les performances totales de tous les cœurs.
Nous effectuerons un petit calcul théorique en modélisant le débit de pointe. Pour le CPU à l'étude, la fréquence d'horloge en mode Turbo est de 1920 MHz. 128 bits ou 16 octets sont transmis en un cycle d'horloge:
- 1920 * 16 = 30720 (environ 30 gigaoctets par seconde)
Un compteur TSC (Time Stamp Counter) est utilisé comme source d'intervalles de temps exemplaires. Étant donné que le cœur du processeur et le TSC sont généralement synchronisés de manière asynchrone, les valeurs des cycles d'horloge TSC par instruction sont des valeurs fractionnaires.
Assurez-vous que le processeur fonctionne en mode Turbo, sur la base des valeurs de fréquence indiquées dans la documentation. Un cycle d'horloge de la fréquence centrale amplifiée de 1920 MHz est d'environ 0,521 nanosecondes. Un cycle d'horloge de la fréquence nominale de 1440 MHz, sur lequel le compteur d'horodatage fonctionne, est d'environ 0,694 nanosecondes. Pour les instructions exécutées par cycle, la valeur théorique du nombre de cycles TSC par instruction (CPI) doit être
Les valeurs mesurées affichées de l'IPC minimum entre 0,759 et 0,767 sont assez proches de cette valeur.
Cache L2
Quatre cœurs du processeur à l'étude sont divisés en deux groupes, deux cœurs chacun. La taille totale du cache L2 est de 2 Mo et est également répartie entre eux. La conclusion est évidente: 1 mégaoctet de cache L2 est disponible pour chaque cœur, dont l'accès est partagé avec un voisin de groupe.
Repères de cache L2
La vitesse du cache L2 est l '«étape» centrale qui se produit lorsque la double inégalité de 24 Ko <X <1 Mo est observée, lorsque le bloc de données traité n'est plus placé dans L1, mais toujours placé dans L2.
Fig 8 .
Graphique de la vitesse de lecture d'un bloc de données sur sa taille;
Quartier X = Taille L2Comme le montrent les graphiques, une diminution de la vitesse due à l'épuisement de L2 se produit lorsque la limite de 1 Mo est dépassée. La capacité à «emprunter» une cache à un groupe voisin, ayant déplacé le moment de la diminution de la vitesse au point de 2 Mo, n'a pas été trouvée.
Fig 9 .
Le tracé de la vitesse d'écriture du bloc de données sur sa taille;
Quartier X = Taille L2L'indice de performance du cache d'écriture L2 est proche de la lecture: 12 contre 11,5 GBPS. Le contexte théorique de ce résultat sera examiné dans la prochaine publication .