Der Parallax Propeller ist ein paralleler Mikrokontroller mit acht 32-bit RISC-CPU-Kernen; er wurde im Jahre 2006 eingeführt.
Der Parallax Propeller, seine eingebaute SPIN-Programmiersprache, sein Byte-Code-Interpreter und die integrierte Entwicklungsumgebung „Propeller Tool“ wurden alle von einer einzigen Person entworfen: dem Co-Gründer und Vorsitzenden von Parallax, Chip Gracey.
Inhaltsverzeichnis |
Jeder der acht 32-Bit Kerne (bekannt als Cog) besitzt eine elementare ALU (Division wird nicht direkt unterstützt) sowie Zugriff auf 512 32-bit long words (2 KiB) an Instruktionen und Daten. Selbst-modifizierender Code ist möglich und wird intern verwendet, beispielsweise durch eine Anweisung, die verwendet wird, um einen Unterroutinen-Aufruf/-Rücksprung-Mechanismus zu schaffen, der ohne einen Stack auskommt. Der Zugriff auf den Speicher (32 KB RAM; 32 KB ROM) wird gesteuert nach round-robin-Algorithmus durch einen internen Bus-Controller, der Hub genannt wird. Jeder Cog hat ebenfalls Zugriff auf zwei fest zugeordnete Hardware-Zähler und zwei besondere "Video-Register" zur Verwendung für die Generierung von PAL, NTSC, VGA, Servo-Kontroll-, oder anderen Timing Signalen.
Der Propeller kann auf zwei Weisen mit einem Systemtakt versorgt werden: entweder durch einen internen on-chip-Oszillator (wodurch eine geringere Gesamtzahl an Bauteilen nötig ist, aber etwas Genauigkeit und thermische Stabilität verloren geht) oder einen externen crystal- oder -resonator (woraus bei höheren Gesamtkosten größere Geschwindigkeit und erhöhte Genauigkeit resultieren). Jede dieser Taktquellen kann durch einen auf dem Chip integrierten PLL-Taktvervielfacher geleitet werden, welcher auf eine Vervielfachung von 1x, 2x, 4x, 8x, oder 16x eingestellt werden kann.
Sowohl die eingebaute Oszillatorfrequenz (sofern verwendet) als auch der PLL-Multiplikatorwert können zur Laufzeit verändert werden. Korrekt eingesetzt kann dies die Energieeffizienz erhöhen; zum Beispiel kann der PLL-Multiplikator verringert werden, bevor eine aus Timing-Gründen benötigte längere Wartezeit ohne Instruktionsausführung eingelegt wird; im Anschluss kann der Multiplikator wieder erhöht werden; der Prozessor nimmt somit weniger Energie auf. Die Anwendung dieser Technik ist jedoch auf Situationen beschränkt, in denen kein anderer Cog Timing-abhängigen Code ausführt (sofern dieser Code nicht sorgfältig dafür entworfen wurde, mit solchen Veränderungen zurecht zu kommen); der Grund hierfür liegt in der effektiven Taktrate, welche alle Cogs gemeinsam haben.
Im einbegauten ROM sind außer dem Spin-Interpreter und Bootloader noch einige Daten hinterlegt, die besonders für mathematische Berechnungen sowie für Audio- und Videoanwendungen hilfreich sein können.
Der Parallax Propeller ist verfügbar in den Bauformen 40-pin DIP, 44-pin LQFP, oder als besonders platzsparender QFN. Besonders der DIP Bauform ist wegen der einfachen Handhabung bei Hobbyanwendern beliebt.
Der Propeller kann beim Aufstarten sein Programm aus einem externen seriellen EEPROM laden, nach Abschluss des Bootvorganges kann dieser Speicher für andere Aufgaben (etwa Speicherung von Meßwerten) verwendet werden.