Propeller 2 de Parallax - un processeur multi-coeur pour les Makers

Il y a un moment, j'ai croisé un article parlant du portage de MicroPython sur le processeur P2 (P2X8C4M64P) de Parallax.
Grand fan de MicroPython, cela à forcément attiré mon attention...

Module P2 Edge de Parallax (P2-EC)

Alors, en grattant un peu, je me rend compte que le P2 est un monstre de puissance et de possibilité.

P2 - Microcontroleur 8 coeurs

Le Parallax Propeller 2 (P2) est un microcontrôleur de 14x14mm embarquant 8 coeurs 32-bits identiques (appelé cog) qui sont connectés sur un HUB commun.
Ces coeurs fonctionnent en logique 1.8V.

Ce HUB offre un accès à la 512 Kio RAM partagée, un solveur mathématique CORDIC et des outils de gestion du P2. La RAM est continue (pas de banques) et accessible par l'intermédiaire d'un espace d'adresse codé sur 20 bits.
Le P2 comprend 512 registres RAM à double port pour le code et variables rapide (the Propeller 2 MCU features 512-longs of dual-port register RAM for code and fast variables).

Un des modèles d'accès via le HUB.
Source: Parallax Inc

Le Propeller 2 dispose de 64 broche "smart I/O" identiques (broches intelligentes) capable de réaliser de nombreuses fonctions analogiques et numériques de façon autonome. Les broches smart I/O sont accessible par chacun des coeurs, ce qui permet de maximiser la flexibilité applicative.

Source: ParallaxInc Twitter

Les broches d'entrées/sorties sont en logique 3.3V et alimentés indépendamment par bloc de 4 broches (via une broche Vio). Cela permet de maximiser les performances analogiques.

Le Propeller 2 dispose de 6 modes d'horloge différent (sous contrôle logiciel) dont les sources peuvent être permutées à chaud (sans parasitage du signal).

Récap des fonctionnalités des 8 coeurs:

  • Accès à toutes les entrées/sorties
  • 4 canaux DAC (sorties analogiques)
  • 4 entrées ADC (entrées analogiques)
  • RAM registre de 512 octets de long, registre à double port.
  • RAM lookup de 512 octets de long, registre à double port.
  • Possibilité d'exécuter du code directement depuis la RAM Registre, la RAM Lookup et la RAM du HUB

Recap des fonctionnalités du HUB:

  • 512 Kio de RAM contiguë (espace d'adresse 20 bits). Accessible par octet, par mot, par long.
  • Possibilité d'accès séquentiel en lecture/écriture par tous les COG (coeurs) en même temps.
  • Resolver Cordic (wikipedia) 32 bits avec correction de facteur d'échelle.
  • 16 bits Sémaphores avec lecture-modification-écriture atomique.
  • Compteur 64 bits.
  • 16 Kio de Boot ROM (chargé dans la RAM du HUB au démarrage).
  • 64 broches "Smart I/O" identiques, avec broches d'alimentation (Vio) indépendante pour chaque bloc de 4 broches.

Pour en savoir plus, vous pouvez vous référer à la page Propeller 2 du site Parallax.

Programmer le P2

Le langage de prédilection est "Spin2" (voir cette doc), un langage maison basé sur du C (ou pseudo C/Basic je ne sais pas trop). 

Il existe également du "Flex C" ou du "Flex Basic".

Il est également possible d'utiliser l'assembleur PASM2 pour programmer le P2.

Enfin, il existe également une documentation sur "Smart Pin" ou "Smart I/O", ces fonctions analogiques/numériques autonomes que le P2 peu réaliser en tache de fond.

Envie d'en savoir plus?

Le page Propeller 2 de Parallax contient un belle section documentation


Aucun commentaire