Obligement - L'Amiga au maximum

Mercredi 28 juin 2017 - 17:37  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Soutien

N'hésitez pas à soutenir le projet Obligement



Contact

David Brunet

Courriel

 


Dossier : Introduction à Xena
(Article écrit par Jamie Krueger et extrait d'amigaonthelake.com - mai 2017)


Note : traduction par David Brunet.

Les AmigaOne X1000 et X5000 d'A-EON Technology disposent d'une fonctionnalité unique pour un ordinateur personnel : un coprocesseur programmable par l'utilisateur et ayant son propre port d'extension !

Microcontrôleur multicoeur 32 bits, la puce Xena est en fait un XS1-L16A (anciennement XS1-L2) de chez XMOS. La puce Xena est câblée à la fois avec le processeur et avec le port d'extension 98 broches nommé Xorro.

Dans cette série d'articles, je vais documenter mes recherches sur la puce Xena et son intégration avec le nouveau port d'extension Xorro. J'espère éclairer le potentiel de cette création qu'A-EON Technology a apporté à sa dernière ligne d'ordinateurs AmigaOne, et démontrer comment vous pourrez l'utiliser pour concevoir vos propres projets logiciels ou matériels.

Dans le passé, la gamme d'ordinateurs Commodore a bénéficié d'un large éventail d'options d'extensions matérielles personnalisées, dont beaucoup ont commencé en tant que projets de loisir réalisés par une personne ou un petit groupe. En remontant au temps du Commodore PET, et en passant par les Commodore 64 et 128, Commodore avait inclus l'interface "User Port" qui fut essentiellement un port parallèle et série combiné qui se connectait à la puce MOS 6526 CIA (Complex Interface Adapter). Bien que Commodore ait probablement prévu cette interface pour les imprimantes et les modems, l'accès direct aisé à la puce CIA via les commandes PEEK et POKE en BASIC, et le fait que cette interface ait été publiquement documentée, ont fait que les utilisateurs Commodore ont rapidement pu utiliser leur machine pour contrôler à peu près tout : avec par exemple un compte-tour pour voitures télécommandées, la prise en compte des points dans une partie de bowling ou encore pour équilibrer les arbres de transmission dans un garage en Pologne !

Plus tard, alors que le Commodore Amiga commença à apparaître sur le marché, les utilisateurs furent encore plus créatifs pour trouver des moyens pour étendre leur machine favorite. Aujourd'hui, la scène des projets informatiques artisanaux a tout simplement explosé avec toute une gamme de microcontrôleurs et de FPGA (Field Programmable Gate Arrays) plus accessibles et utilisés chaque jour dans de nouveaux projets de loisir ou professionnels.

En incluant la puce Xena et le port Xorro comme partie intégrante des nouvelles machines AmigaOne, A-EON Technology pousse les projets de loisir (et professionnels) à un tout autre niveau. A présent, au lieu de concevoir votre sympathique projet matériel avec un composant fixe comme une puce CIA, vous pouvez adapter la puce contrôleur pour qu'elle fonctionne avec votre matériel. Imaginez si vous pouviez redessiner complètement la logique interne de la puce CIA pour qu'elle fonctionne partout où vous en avez besoin. Imaginez maintenant qu'au lieu d'un seul fil d'exécution logique, vous pouviez en avoir 16 qui fonctionnent tous en même temps. Imaginez aussi que chacun de ces fils d'exécution puisse exécuter une logique complexe à une vitesse de 63 MIPS, simultanément, et réagir aux lignes de contrôle internes et externes en 10 nanosecondes (soit 10 milliardièmes de seconde). Maintenant, imaginez... ok, ok, je m'arrête. Commençons par regarder de plus près ce quelle puce XMOS Xena est en réalité.

Xena

En prenant une photo de la puce Xena présente sur l'AmigaOne X5000 et en comparant les chiffres inscrits dessus avec ceux de la numérotation de chez XMOS, nous en déduisons le fait suivant : la puce Xena est un 16L7C10.
  • "16" pour 16 coeurs logiques.
  • "L" pour la famille de produits "General Purpose" (Usage Général) de XMOS.
  • "7" indique la mémoire (dans ce cas 128 ko au total, 64 ko pour chaque tuile ("Tile").
  • "C" pour "Commercial" (au niveau de la température).
  • "10" indique la vitesse en MIPS (dans ce cas 1000 MIPS).
Selon le guide "Ordering Information" (Informations de commande) de chez XMOS, le code produit de notre puce est "XS1-L16A-128-QF124-C10". En utilisant ce numéro de produit, nous pouvons en apprendre plus sur cette puce. Une recherche rapide dans Google pour ce numéro de produit renvoie plusieurs réponses, notamment un lien de téléchargement pour la feuille de données XS1-L16A-128-QF124 provenant du site Web www.xmos.com.

Voyons maintenant le schéma des circuits de la puce Xena (XMOS XS1-L16A) :

Xena

La puce Xena comprend deux coeurs de processeur appelés "xCORE Tiles" et 16 coeurs logiques xCORE (huit par tuile). Elle est cadencée par un oscillateur PLL (Phase-Locked Loop) à 25 MHz configuré pour un fonctionnement en x20, ce qui permet à Xena d'atteindre les 500 MHz. Le tableau suivant indique comment la vitesse de 1000 MIPS par tuile est distribuée entre les différents coeurs logiques de tuile. Selon la fiche technique XS1-L16A-128-QF124, si jusqu'à quatre coeurs logiques sont actifs, les cycles de traitement disponibles sont répartis entre les quatre coeurs ou, dans ce cas, les quatre premiers coeurs reçoivent 125 MIPS chacun. Maintenant, si plus de quatre coeurs sont actifs sur la tuile, les cycles sont d'au moins 1/n cycles pour "n" coeurs ou, auquel cas, cinq coeurs reçoivent 100 MIPS chacun, six coeurs reçoivent 83 MIPS chacun, sept coeurs reçoivent 71 MIPS chacun et, enfin, si les huit coeurs fonctionnent simultanément dans une tuile donnée, ils reçoivent 63 MIPS chacun.

Xena

De plus, les coeurs logiques qui attendent un déclencheur d'événement ou qui ne sont pas assignés à une tâche, sont "endormis" et libèrent tous les cycles de traitement pour les autres coeurs. Cela signifie que la vitesse prédite par coeur est souvent plus élevée, mais ces valeurs sont le nombre de MIPS minimum garanti par coeur.

Ceci est une distinction très importante. Durant l'exécution normale des fils d'exécution d'un programme dans un environnement multitâche (dans ce cas, sous AmigaOS 4), il est presque impossible de déterminer le nombre de cycles de traitement qu'un fil d'exécution donné a obtenu. Ceci dépend de la charge du processeur, de la priorité des tâches, etc. Cependant, avec la puce Xena, votre code fonctionne sur une architecture RISC 32 bits dédiée où toutes les instructions du processeur (à l'exception des divisions) peuvent être exécutées à raison d'une instruction par cycle d'horloge. De même, l'accès à la mémoire interne SDRAM (64 ko par tuile) se fait également en un cycle.

Les microcontrôleurs programmables et multicoeurs de XMOS se placent dans un marché de niche entre les microcontrôleurs statiques en mono fil d'exécution et les FPGA complets. Avec une fonctionnalité intégrée de système d'exploitation temps réel (RTOS), un temps de réponse de 10 nanosecondes pour ses entrées/sorties, des temps d'exécution totalement prédictibles et la possibilité d'être programmée dans un langage apparenté au C (nommé Cross-C ou xC), la puce XMOS vous permet d'effectuer des tâches logicielles qui nécessiteraient normalement un matériel dédié.

Xena est câblée sur la carte mère de l'AmigaOne X5000 afin de communiquer avec le processeur et son propre port d'extension, appelé "Xorro". Le nom "Xena" est un clin d'oeil aux circuits spécialisés présents dans les Amiga Classic des années 1980 et 1990 (Agnus, Alice, Denise, Paula...). Le nom "Xorro" est également un clin d'oeil aux Amiga Classic qui étaient pourvus du système d'extension Zorro II/III. Le port Xorro est physiquement un connecteur PCI Express x8 (98 broches) qui est positionné en ligne avec un port PCI Express x1 normal (les deux ports peuvent être utilisés simultanément). Alors que le port Xorro dispose d'un connecteur physique comme celui d'un PCI Express x8 standard, il n'est pas câblé de la même manière et il n'est pas compatible avec les cartes PCI Express x8 standards.

Au lieu de cela, Xorro est directement connecté à la puce Xena via une série de ports d'entrées/sorties ainsi que les ports XLink de Xena qui lui permettent de se connecter à une série de puces XMOS supplémentaire. Ce schéma des circuits issu du manuel technique de l'AmigaOne X5000 (reproduit ici avec l'autorisation d'A-EON Technology) vous donne une idée de la façon dont la puce Xena se connecte à la fois su port Xorro et au processeur.

Xena

L'architecture du XMOS-XS1, qui est celle de Xena, peut être considérée comme le successeur moderne de la célèbre technologie Inmos Transputer des années 1980 qui fut la pionnière au niveau de l'architecture micropuce spécialement conçue pour le calcul en parallèle.

Plus précisément, David May, professeur d'informatique à l'université de Bristol, fut l'architecte des technologies Transputer et des coeurs XMOS. Il détient 33 brevets (beaucoup d'autres sont en instance) sur le thème de la technologie des microprocesseurs. David May est aussi l'un des fondateurs de XMOS, société qu'il créa quand il acheva ses études. Les puces XMOS-XS1 tirent parti d'un modèle similaire d'exécution en parallèle, extensible via le matériel, comme les puces Transputer l'étaient à l'époque. Chaque puce XMOS-XS1 peut contenir une ou plusieurs tuiles (des "Tiles") et chaque tuile peut avoir un ou plusieurs coeurs logiques. Tous les coeurs logiques peuvent communiquer entre eux dans la même tuile, et même avec d'autres coeurs logiques présents dans d'autres tuiles. De plus, grâce aux liens vers d'autres puces XMOS-XS1, ils peuvent communiquer en toute transparence avec d'autres coeurs logiques placés sur des tuiles d'autres puces XMOS-XS1 !

Dans le cas de l'AmigaOne X5000, cela signifie que la puce Xena peut avoir des fonctions tournant en parallèle sur n'importe lequel des 16 coeurs locaux (cela ressemble en gros à des fils d'exécution matériels). Chacune de ces fonctions (ou tâches) peut interagir avec chacune des autres grâce aux deux extrémités du canal. Ensuite, via le port Xorro, vous pouvez ajouter des puces XMOS supplémentaires et ainsi étendre la capacité de calcul.

La présence de la puce Xena et du port d'extension Xorro sur l'AmigaOne X5000 ouvre la porte à de nombreuses possibilités d'extensions commerciales ou créées par l'utilisateur. La puce Xena peut être utilisée en tant que coprocesseur pour le processeur principal ou bien, via le port Xorro, en tant que contrôleur matériel haute performance. Les possibilités ne sont limitées que par l'imagination de l'utilisateur. Il convient de noter que dans tous les autres cas, les puces XMOS sont programmées de façon externe via un port JTAG, alors que sur AmigaOne X5000, où l'interface JTAG est déjà connectée au processeur, on peut programmer Xena (ou toute autre puce XMOS connectée via le port Xorro) depuis AmigaOS 4. En outre, la puce Xena pourrait être programmée pour interagir avec une application AmigaOS 4 (native PowerPC) en lui ouvrant les portes de la puissance du calcul en parallèle. La carte mère de l'AmigaOne X5000 peut gérer à la fois les interfaces de programmation et de débogage de systèmes externes, et ceux internes de Xena, vous pouvez donc profiter pleinement des outils de développement et de débogage de XMOS qui fonctionnent sur du matériel externe.

J'espère que cette introduction vous a donné une idée de ce que représente la puce Xena et vous permet de réfléchir aux types d'applications qui peuvent être réalisées avec elle. Dans l'article suivant, je vais aborder plus en détail les outils de développement et voir comment AmigaOS 4 peut charger des programmes sur Xena. En attendant, voici quelques liens interessants pour une lecture approndie sur le sujet :


[Retour en haut] / [Retour aux articles]