Der Parallax Propeller P1 ist ein Mikrocontroller der von der kleinen Firma Parallax Inc. [*] entwickelt wurde und etwas von üblichen Implementierungen abweicht. So besitzt dieser Controller bis auf einen Videogenerator und simple Zähler kaum Peripherie, dafür 8 Kerne (Cogs genannt), die parallel Code abarbeiten. Er eignet sich damit insbesondere für Echtzeitanwendungen und exotische Schnittstellen, die von normalen Mikrocontrollern nicht unterstützt werden und kann somit durchaus als Konkurrenz zu kleinen FPGAs gesehen werden. Der Einsatz des Controllers ist wohl vor allem auf Ausbildung und im Hobby Bereich zu sehen, er kommt jedoch laut Parallax wohl auch in einigen Industriesteuerungen vor.
Was diese Archtiktur interessant macht, ist ihr sehr minimalistischer Aufbau, sowie die Tatsache, dass die Hardwarebeschreibung des ICs, zumindest was den digitalen Teil angeht mittlerweise Open Source ist.
In der Vergangenheit habe ich daraus einen zyklengenauen Simulator gebaut (meines Wissens nach gibt es so etwas für den P1 noch nicht). Um eine hohe Ausführungsgeschwindigkeit zu erreichen, kommen teilweise Codegeneratoren zum Einsatz, sodass zur Laufzeit angepasster x86 Code generiert wird.
Im folgenden ist ein Screenshot zu sehen, bei dem gerade das Benchmark des P1 (Turbulence Demo [*])) läuft:
Der Code dazu ist bisher unveröffentlicht.
Es gibt einen von Parallax portierten Compiler (OpenSpin), welcher jedoch ein paar Einschränkungen besitzt. Diesen habe ich komplett umgeschrieben, Fehler beseitigt und auf Github [*] veröffentlich. Unter anderem funktioniert das Entfernen unbenutzer Methoden jetzt einwandfrei und sämtliche unnötige Einschränkungen bezüglich maximaler Ausdruckstiefe sind aufgehoben. Auch der Code wurde auf einen modernen C++ Dialekt und von einem Quasi Einpasscompiler auf eine Lexer/Parser/Optimizer/Generator Architektur umgestellt. Der Kompiler wurde auf einer riesigen Zahl (>2000) auf Quellcode Dateien getestet und das Ergebnis mit dem Original verglichen. Ein produktiver Einsatz sollte durchaus möglich sein, auch wenn ich hierfür keine Garantie geben kann.
Impressum | Datenschutzerklärung | [*]: externer Link | thilo.ackermann@gmail.com