|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sam460LE et A1222 Plus, un duel de poids léger Aujourd'hui, début 2024, nous vivons une situation inhabituelle dans le monde Amiga NG. Nous avons le choix entre deux ordinateurs d'entrée de gamme : en 2023, ACube Systems a lancé une nouvelle version de la Sam460, nommée Sam460LE, et en 2024, après un long voyage plein de vicissitudes, AAA Technology a enfin introduit l'A1222 Plus. La concurrence de deux ordinateurs de la même catégorie est quelque chose de complètement inhabituel dans le monde Amiga NG, c'est pourquoi il est souvent question de savoir lequel d'entre eux est le meilleur. ![]() Explications des couleurs pour les tableaux :
1. La carte mère ![]() Lorsque l'on compare les cartes mères, une différence saute aux yeux : la Sam460LE est au format Micro-ATX alors que l'A1222+ est Mini-ITX.
La Sam460LE présente l'avantage de pouvoir être étendue plus facilement. Bien que les emplacements PCIe soient tous occupés dans une configuration normale, on peut installer un commutateur PCIe 1x1 -> 4x1 si nécessaire. Nous pouvons également installer MorphOS sur Sam460LE. La carte mère de l'A1222+ est plus petite, dispose d'un contrôleur SATA II et de 8 Go de mémoire DDR3 (la mémoire au-delà de 2 Go sera utilisée par Linux et certaines applications AmigaOS). L'A1222+ présente aussi un autre avantage non mentionné dans le tableau, à savoir le système de fichiers NGFS. Il est plus moderne et plus rapide que SFS/02 et n'est actuellement utilisé que par les AmigaOne A1222+ et X5000. D'autres avantages comme la présence de deux ports Ethernet et un coprocesseur nettement plus puissant ne sont que théoriques, car AmigaOS ne peut pas encore les utiliser. 1.1 Schémas fonctionnels des ordinateurs Le modèle Sam460ex original comprenait également un connecteur SATA II et une puce audio/vidéo avec accélération 2D. Les versions cr/LE n'en disposent plus, ces fonctions n'ont pas été utilisées en pratique. Le coprocesseur Lattice est connecté au bus local du processeur (EBC, OPB, voir ci-dessous). La carte SD est connectée en tant que périphérique USB et vous pouvez y installer des modules du noyau ou l'intégralité du système d'exploitation et démarrer directement à partir de celle-ci. L'interface LCD de l'A1222+ fait partie du processeur et n'a pas d'accélération matérielle. Elle ne convient donc pas à un ordinateur de bureau. Elle pourrait être utilisée pour un serveur, lorsque l'on utilise l'interface LCD pour libérer un emplacement PCIe x4. Le coprocesseur Lattice est connecté via le CPLD principal qui, en plus de communiquer avec le coprocesseur, contrôle par exemple la vitesse des ventilateurs. Le MCU surveille ensuite les tensions et les températures du processeur. Le port microSD est connecté au contrôleur du processeur eSDHC. Il n'y a qu'un micrologiciel (U-Boot) sur la carte et il n'est pas accessible depuis le système. En théorie, cela pourrait être accessible avec un pilote adapté, la carte microSD contient une table de partition MBR, mais cela ne serait pas raisonnable. Nous pourrions facilement corrompre le micrologiciel par erreur. À première vue, les deux ordinateurs sont assez similaires. Étant donné que les deux processeurs sont des "SOC" (System On Chip - système sur puce) et que la partie la plus importante de l'ordinateur se trouve donc à l'intérieur, ils méritent d'être examinés de plus près. ![]() Puisqu'un simple examen des paramètres ne suffit pas, allons plus loin pour voir ce qui se cache sous la surface. Donc au sein du processeur... 2.1 Schéma fonctionnel du processeur AMCC PowerPC 460EX Le schéma du processeur 460EX est un peu déroutant au premier abord car il est assez détaillé. Alors, expliquons-le un peu. Tout d'abord, le FPU (Floating Point Unit - unité à virgule flottante) ne fait pas partie du coeur, comme c'est souvent le cas avec les processeurs PowerPC. Le FPU est connecté au processeur en tant qu'APU (Auxiliary Processor Unit - unité de processeur auxiliaire), il partage ses pipelines et dispose d'un ensemble standard de 32 registres FPR de 64 bits. Par conséquent, de notre point de vue, nous le considérerons comme faisant partie du coeur. Ce processeur dispose de quatre bus internes :
Ce schéma est moins détaillé, un bref résumé suffit donc. Les deux coeurs de processeur, ayant un cache L2 commun, sont connectés via le Coherency Module (module de cohérence) à la carte mère. Le coprocesseur Lattice LCMX02-640 est ensuite connecté via l'Enhanced Local Bus Controller (eLBC - contrôleur de bus local amélioré). Les autres connexions sont assez évidentes. En plus des schémas, nous nous intéresserons principalement aux différences de caractéristiques des processeurs : 2.3 Informations de base sur les processeurs
Les deux processeurs ont un objectif similaire et, comme le suggère la description, ils possèdent tous deux de bonnes propriétés dans le domaine du réseau (Internet Protocol) et du traitement des flux de données (au moment de leur création). La fréquence des processeurs est similaire, mais le P1022 propose des performances brutes par coeur nettement plus élevées à fréquence donnée, et il est également double coeur. Aujourd'hui, nous n'utilisons cette fonctionnalité que sous Linux, mais Hyperion travaille sur un nouvel ExecSG qui utilisera également les deux coeurs sous AmigaOS 4. 2.4 Sous-système mémoire des processeurs
Les deux processeurs disposent d'un cache mémoire L2 de 256 ko. Avec le processeur 460EX, la cohérence mémoire n'est cependant pas garantie en toutes circonstances. Cela conduit, par exemple, à ce que les pilotes de périphériques doivent parfois vider le cache L2 et que les pilotes Radeon ne disposent pas d'un GART fonctionnel. Le P1022 sera donc légèrement plus rapide. En plus de la mémoire L2, le processeur 460EX dispose également de 64 ko supplémentaires de mémoire rapide sur puce - elle est connectée par un bus de 128 bits et est utilisée, entre autres, pour les données par paquets traitées par le Security Engine (moteur de sécurité) et les modules Ethernet. Le contrôleur DDR est une génération plus moderne dans le P1022. Il peut traiter plus de mémoire physique, il est plus rapide et même s'il ne dispose pas de double canal, il peut effectuer un entrelacement de rang, ce qui accélère les opérations d'environ 10%. Malheureusement, le micrologiciel de l'A1222+ ne peut pas encore initialiser cette fonctionnalité, mais comme U-Boot est encore en développement et que l'AmigaOne X5000 le permet déjà, nous pourrions disposer de cette fonctionnalité dans le futur. Les deux ordinateurs n'ayant qu'un seul connecteur DDR sur la carte mère, nous sommes limités par la taille maximale des modules SO-DIMM. L'A1222 peut ainsi être équipé avec un module DDR3 jusqu'à 8 Go (à géométrie 2R ou 4R). J'ai essayé le module 8 Go (2R 8) Kingston Fury (KF318LS11IB/8). De son côté, la Sam460LE peut théoriquement disposer de 4 Go avec un module DDR2 (2R ou 4R). Je n'ai pas essayé cela, je n'ai pas de module 4 Go disponible. Il est annoncé un maximum de 2 Go de mémoire avec les Sam, mais comme U-Boot est également encore en développement, il serait possible d'ajouter la gestion de 4 Go de mémoire (si ce n'est pas déjà fait). Le processeur 460EX utilise un contrôleur DMA monocanal pour les transferts depuis des périphériques rapides (il peut faire des transferts mémoire<->mémoire et mémoire<->périphérique, pas directement périphérique<->périphérique) et le contrôleur à quatre canaux est destiné uniquement aux périphériques reliés à l'On-chip Peripheral Bus (bus périphérique sur puce). Le P1022 dispose de deux contrôleurs DMA universels à quatre canaux pour tous les transferts. 2.5 Contrôleurs de périphériques de processeur
Le processeur P1022 dispose d'un total de six lignes configurables SERDES, une voie à quatre lignes, l'autre voie à deux lignes. La configuration est définie dans le micrologiciel. La connexion physique de l'A1222+ propose 4x PCIe et 2x SATA. Si U-Boot le permet à l'avenir, une bifurcation peut être effectuée sur le port PCIe (divisant le bus PCIe sans commutateur). Le processeur peut avoir jusqu'à trois interfaces PCIe, les véritables combinaisons utilisables sont donc : PCIe x4 (par défaut), PCIe x2 + x2, PCIe x2 + x1 + x1. De cette manière, il serait possible à l'avenir, d'étendre l'A1222+ avec des périphériques supplémentaires, bien sûr au prix d'une limitation du flux de données vers la carte graphique. Le processeur 460EX partage un SERDES (marqué comme "HSS" sur le schéma du PowerPC 460EX) pour PCIe x1 et SATA. Sur la Sam460LE, le PCIe x1 est câblé. Les deux processeurs disposent d'une accélération matérielle pour le TCP, l'e500v2 dispose également des fonctions de VLAN avancées, de QiQ, de MPLS, etc. Bien sûr, ces fonctions sont inutilisées dans la pile TCP AmigaOS (jusqu'à présent). Les deux processeurs peuvent également disposer d'un moteur de sécurité (SEC), apportant l'accélération matérielle IPSEC, SSL/TLS et de nombreux autres algorithmes de cryptographie et de hachage. Mais cette option est facultative lors de la commande du processeur, donc je suppose que ni la Sam460LE ni l'A1222+ n'ont de versions SEC de leur processeur (et je ne veux pas enlever les ventilateurs juste pour regarder le code). Comme c'est déjà le cas avec les gros processeurs, il serait possible d'échanger les processeurs contre des versions avec ce moteur. Et puis (euh...), il faudra écrire un pilote pour AmigaOS (Linux peut-il gérer cela ?). L'avantage serait ainsi, par exemple, une accélération significative du trafic Internet. Et ceci ne ferait certainement pas de mal de nos jours, où tout est crypté. Une comparaison des processeurs montre que le P1022 a finalement un peu plus d'avantages. Mais nous n'avons pas encore découvert l'essentiel. ![]() Dans le prochain chapitre, nous irons encore plus loin, dans les entrailles du processeur, jusqu'au coeur. Voyons si nous pouvons également y trouver quelque chose d'agréable 3.1 Différences dans les coeurs
Les deux coeurs sont 32 bits et ont le même ISA. Ils diffèrent par les jeux de registres, les unités FPU et les unités SIMD. Jetons à présent un coup d'oeil aux diagrammes de base. Cette fois, le schéma de l'e500v2 sera plus détaillé. 3.2 Schéma fonctionnel du PowerPC 440 ![]() Coeur du PowerPC 440. Le bloc FPU n'est pas sur le schéma, il est connecté à l'interface APU Le FPU, même s'il n'est pas directement dans le coeur, se comporte comme une partie de celui-ci. Il est connecté à l'interface APU et partage directement les pipelines centraux (Complex Integer Pipe). Il n'y a que des registres GPR 32 bits dans le coeur. Les registres FPR 64 bits sont à nouveau contenus dans le FPU externe et, du point de vue de l'ABI (Application Binary Interface), ils apparaissent comme faisant partie du coeur. Cependant, ce qui est en plus dans le coeur par rapport aux processeurs PowerPC classiques, c'est l'extension DSP/MAC (APU). Elle est contenue directement dans le Complex Integer Pipe. Le temps d'exécution de ces instructions est d'un cycle, elles sont donc adaptées au traitement de flux de données similaires (flux). 3.3 Schéma fonctionnel de l'e500v2 Ce coeur comporte cinq puissantes unités (les grises sur le schéma), traite les instructions dans le désordre (jusqu'à deux instructions + un saut par cycle) et les termine dans l'ordre. Ce coeur ne dispose également que de registres GPR, mais cette fois étendus à 64 bits. FPR ne contient aucun registre. Le FPU PowerPC standard n'est pas présent, il est remplacé par les unités suivantes : Flottant scalaire intégré à simple précision et Flottant scalaire intégré à double précision. Ces unités ont cependant un jeu d'instructions différent de celui du FPU PowerPC et utilisent un GPR 64 bits directement au lieu du FPR. Les unités SIMD (Simple Instruction Multiple Data) sont les plus intéressantes sur ce processeur. Il en contient deux : SPE (Signal Processing Engine) est une unité vectorielle qui traite des vecteurs entiers avec deux valeurs de 32 bits ou quatre valeurs de 16 bits. L'APU à virgule flottante simple précision vectorielle intégré est une unité vectorielle pour les vecteurs avec deux valeurs à virgule flottante. Les instructions SPE sont exécutées directement en unités simples et multiples de 64 bits (Unit) et utilisent à nouveau le GPR 64 bits. A titre de comparaison, Altivec/VMX gère des vecteurs deux fois plus longs (128 bits) et dispose d'une unité de permutation supplémentaire. Ici, dans les coeurs, se trouve enfin la réponse à toutes les questions quant à savoir si l'A1222+ (ou son processeur) est suffisamment puissant ou adapté à AmigaOS. 4. La réponse à la question fondamentale de la vie, de l'univers et des Amiga NG d'entrée de gamme en général La question fondamentale est la suivante : l'A1222+ est-il plus puissant que la Sam460LE ? Contrairement aux souris, nous n'avons pas besoin d'attendre sept millions d'années pour obtenir une réponse. La réponse n'est pas 42, mais elle est quand même très simple : oui et non. Non : parce que le code PowerPC normal contenant les instructions FPU doit être traité via des interruptions et émulé pour le processeur P1022. Nous avons deux émulateurs d'instructions FPU disponibles sur AmigaOS :
Oui (et largement) : parce que l'e500v2 intègre également deux extensions SIMD. Elles ne sont pas aussi puissantes que l'AltiVec/VMX susmentionné, qui surpassait d'ailleurs complètement les SSE et SSE2 d'Intel à l'époque, mais ils restent intéressants. L'instruction "Integer Select", qui supprime les sauts conditionnels dans le code SIMD, sert de complément aux calculs vectoriels. Voir par exemple dans cet article (paragraphe 2.5). Si nous avons du code d'application écrit directement pour le traitement SIMD, il sera nettement plus rapide que le code PowerPC classique. Du point de vue du développeur, l'utilisation du FPU embarqué (Embedded FPU) et du SPE est encore plus compliquée. eFPU a un ensemble de registres différent de celui du standard PowerPC, donc appeler des fonctions à virgule flottante à partir de bibliothèques standard comporte certaines difficultés. Et je ne parle pas du fait que les instructions SPE nécessitent un alignement de pile sur 8 octets. Cela devrait aller de soi selon la norme ABI PowerPC, mais toutes les applications ne la suivent pas. Pour plus de détails, lisez cet article. La Sam peut faire plus : toutes les Sam460 et Sam440 sont capables d'exécuter des instructions DSP (MAC) rapides à un seul cycle (voir ci-dessus). Oui, toutes, car leurs processeurs ont le même coeur : le PPC440. Si nous avions une tâche chronophage dépendante de multiplications et d'additions d'entiers (par exemple, la plupart des opérations de cryptographie et de hachage ainsi que certains codecs), les Sam4x0 peuvent également être plus rapides que le code PowerPC classique. Le SPE dans le P1022 ou l'Altivec dans les PowerPC G4 disposent également de telles instructions, mais le processeur PowerPC G3, par exemple, ne peut pas le faire. Il ne peut donc pas le faire aussi vite. De plus, l'utilisation d'instructions DSP dans les Sam4x0 présente un gros avantage : elle utilise une ABI standard, il n'est donc pas nécessaire d'apporter des modifications à d'autres codes comme dans le SPE. Donc, en général, je plaiderais auprès des développeurs pour qu'ils utilisent cette option pour les ordinateurs Sam4x0. Les Sam4x0 contiennent également l'instruction "dlm from b". Elle est utilisée pour une recherche rapide dans la chaîne, exactement comme son nom l'indique : elle recherche le premier octet non nul. Cependant, je n'ai aucune idée des tâches pour lesquelles elle pourrait être utilisée dans un système d'exploitation de bureau. 5. La fin et la suite Nous savons maintenant quels sont les avantages des ordinateurs et de leurs processeurs. Leurs prédécesseurs des premières générations ne pouvaient pas utiliser des cartes PCIe modernes et des contrôleurs plus récents. Bien sûr, ils n'atteignent pas les performances de leurs grandes soeurs AmigaOne X1000 et X5000, ce sont après tout des systèmes d'entrée de gamme. Mais les deux ont quelque chose en plus par rapport aux processeurs de bureau PowerPC G3. Ils peuvent utiliser les instructions "Multiply-accumulate" (MAC) et l'A1222+ dispose également de deux unités SIMD. C'est dommage que ces options restent inutilisées, il vaudrait certainement la peine de recompiler certains algorithmes chronophages en prenant en compte les avantages du SPE et du MAC. ![]() La prochaine fois, nous pourrons donc commencer à tester du matériel réel. Cela ira vite, je possède quatre assistants similaires à celui-ci qui sont déjà très expérimentés dans le domaine de l'informatique.
|