Parallax Propeller

Parallax Propeller
Parallax Propeller

Der Parallax Propeller ist ein im Jahr 2006 eingeführter Mikrocontroller mit acht unabhängig arbeitenden 32-Bit-RISC-CPU-Kernen.

Programmiert wird der Propeller in der eigens für ihn entwickelten Hochsprache SPIN und in Assembler. Die Hochsprache Spin wird jedoch nicht in Maschinencode übersetzt, sondern in einen Zwischencode (Byte-Code) transformiert, der von einem Byte-Code-Interpreter im Prozessor abgearbeitet wird. Parallax stellt als integrierte Entwicklungsumgebung das „Propeller Tool“ kostenlos zur Verfügung.

Bemerkenswert ist, dass sowohl der Prozessor als auch die Programmiersprache SPIN inklusive Compiler und Byte-Code-Interpreter von einer einzigen Person, nämlich Chip Gracey, dem Mitbegründer und heutigen Vorsitzenden von Parallax entwickelt wurde.

Mittlerweile kann auch in C programmiert werden; verschiedene Compiler existieren als freie Software und als kommerzielles Produkt.

Inhaltsverzeichnis

Mehrkern-Architektur

Jeder der acht 32-Bit-Kerne, den man auch als Cog bezeichnet, besitzt eine elementare ALU, die Division nicht direkt unterstützt, sowie ein RAM für 512 32-Bit-breite long words (zusammen also 2 kB) in dem sowohl ausführbarer Code als auch Daten abgelegt werden können. Selbstmodifizierender Code ist daher möglich und diese Möglichkeit wird auch genutzt. (Beispielsweise durch eine Anweisung, die verwendet wird, um einen Rücksprungmechanismus nach einem Aufruf eines Unterprogramms zu schaffen, der ohne einen Stack auskommt.)

Des Weiteren hat jeder CPU-Kern exklusiven Zugriff auf sämtliche I/O-Pins (insgesamt 32), auf zwei unabhängig konfigurierbare Zähler (verwendbar als Zähler, Zeitgeber oder numerisch gesteuerter Oszillator; auch als Analog-Digitalwandler nach dem Sigma-Delta-Verfahren und umgekehrt als Digital-Analog-Wandler mittels Pulsbreitenmodulation zu gebrauchen) und auf einen Videogenerator (erzeugt RGB-Signale zur direkten Ansteuerung eines Computer-Displays oder Composite-Signale für einen Fernseher gemäß der NTSC- oder PAL-Norm).

Gemeinsam genutzte Ressource ist ein Speicher von 64 kB, dessen untere Hälfte als RAM und dessen obere Hälfte als ROM ausgelegt ist. Um sicherzustellen, dass höchstens ein Cog gleichzeitig auf diesen Speicher zugreift, findet das sogenannte Round-Robin-Verfahren Anwendung, bei dem jeder Cog während eines kleinen Zeitfensters exklusiv auf den gemeinsamen Speicher zugreifen kann, bevor der nächste Cog an der Reihe ist. Dies ist nichts anderes als ein Multiplexer, der in diesem Zusammenhang von Parallax auch als Hub bezeichnet wird.

Geschwindigkeit und Energiemanagement

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 Schwingquarz bzw. Keramikresonator (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 1×, 2×, 4×, 8×, oder 16× 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. Beispielsweise 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 zurechtzukommen). Der Grund hierfür liegt in der effektiven Taktrate, welche alle Cogs gemeinsam haben.

ROM-Erweiterungen

Im eingebauten ROM sind außer dem Spin-Interpreter und Boot-Loader noch einige Daten hinterlegt, die besonders für mathematische Berechnungen sowie für Audio- und Videoanwendungen hilfreich sein können:

  • ein Bitmap-Font-Satz benutzbar für die Schrift auf dem Bildschirm,
  • eine logarithmische Tabelle (Basis 2, 2048 Einträge),
  • eine antilogarithmische Tabelle (Basis 2, 2048 Einträge) für Umrechnungen,
  • eine Sinus-Tabelle (16 Bit, 2049 Einträge).

Bauformen

Der Parallax Propeller ist verfügbar in den Bauformen 40-Pin-DIP, 44-Pin-LQFP, oder als besonders platzsparender QFN. Besonders die DIP-Bauform ist wegen der einfachen Handhabung bei Hobbyanwendern beliebt.

Externer EEPROM

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 Messwerten) verwendet werden.

Literatur

  • Shane Avery, Chip Gracey, Vern Graner: Programming and customizing the multicore propeller microcontroller – the official guide. Mcgraw-Hill, New York 2010, ISBN 978-0-07-166450-9.

Weblinks

Herstellerseiten:

Downloadseiten:

Weiterführende Links:


Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Parallax Propeller — chip The Parallax P8X32A Propeller chip, introduced in 2006, is a multi core architecture parallel microcontroller with eight 32 bit RISC CPU cores.[1] …   Wikipedia

  • Parallax (disambiguation) — Parallax is the difference in the angular position of two stationary points relative to each other from different viewing positions.* The different viewing positions can arise from an observer s motion, called motion parallax. * The different… …   Wikipedia

  • Propeller (Begriffsklärung) — Propeller bezeichnet: Propeller, ein Antrieb durch Flügel, die um eine Welle herum angeordnet sind. Propeller (Fahrgeschäft), eine Jahrmarktattraktion mit einem starren Arm, der um eine horizontale Achse kreist, an dessen Ende Passagierkabinen… …   Deutsch Wikipedia

  • Parallax, Inc. (company) — Infobox Company company name = Parallax, Inc. company company type = Private company slogan = foundation = 1987 Rocklin, California location = Rocklin, California key people = Chip Gracey, President industry = Technology products = Basic Stamp,… …   Wikipedia

  • Propeller (disambiguation) — A propeller is a device which transmits power by converting rotational motion into thrustPropeller can also refer to: * Propeller (band), an Estonian punk band * Propeller (album), by Dayton indie band Guided by Voices * Propeller Records, a… …   Wikipedia

  • HYDRA Game Development Kit — The HYDRA Game Development Kit is the latest, (launched in September 2006) creation of Andre LaMothe similar to the XGameStation. Like the XGameStation, HYDRA is an open system, allowing anyone to create games for it. However, being less focused… …   Wikipedia

  • BASIC Stamp — The BASIC Stamp is a microcontroller with a small, specialized BASIC interpreter (PBASIC) built into ROM. It is made by Parallax, Inc. and has been quite popular with electronics hobbyists since the early 1990s due to its low threshold of… …   Wikipedia

  • Einchipmikrorechner — Als Mikrocontroller (auch µController, µC, MCU) werden Halbleiterchips bezeichnet, die mit dem Prozessor mindestens Peripheriefunktionen auf einem Chip vereinen. In vielen Fällen befindet sich der Arbeits und Programmspeicher ebenfalls teilweise… …   Deutsch Wikipedia

  • Microcontroller — Als Mikrocontroller (auch µController, µC, MCU) werden Halbleiterchips bezeichnet, die mit dem Prozessor mindestens Peripheriefunktionen auf einem Chip vereinen. In vielen Fällen befindet sich der Arbeits und Programmspeicher ebenfalls teilweise… …   Deutsch Wikipedia

  • Mikrokontroller — Als Mikrocontroller (auch µController, µC, MCU) werden Halbleiterchips bezeichnet, die mit dem Prozessor mindestens Peripheriefunktionen auf einem Chip vereinen. In vielen Fällen befindet sich der Arbeits und Programmspeicher ebenfalls teilweise… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”