<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Parallax_Propeller</id>
	<title>Parallax Propeller - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Parallax_Propeller"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Parallax_Propeller&amp;action=history"/>
	<updated>2026-05-28T23:39:50Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Parallax_Propeller&amp;diff=1141408&amp;oldid=prev</id>
		<title>imported&gt;Thomas Dresler: Korrektur</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Parallax_Propeller&amp;diff=1141408&amp;oldid=prev"/>
		<updated>2024-05-17T08:28:53Z</updated>

		<summary type="html">&lt;p&gt;Korrektur&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Datei:Propeller Chip.JPG|mini|Parallax Propeller im [[Dual in-line package|DIL]]-[[Chipgehäuse]]]]&lt;br /&gt;
[[Datei:Propeller P8X32A IC.jpg|mini|Parallax Propeller im [[Quad Flat Package|LQFP]]-Gehäuse]]&lt;br /&gt;
&lt;br /&gt;
Der &amp;#039;&amp;#039;&amp;#039; Parallax Propeller&amp;#039;&amp;#039;&amp;#039; ist ein im Jahr 2006 eingeführter [[Mikrocontroller]] mit acht unabhängig arbeitenden [[32-Bit]]-[[Reduced Instruction Set Computing|RISC]]-CPU-Kernen. Die Herstellerbezeichnung lautet P8X32A. Seit 2020 ist der zweite Chip der Familie verfügbar.&amp;lt;ref&amp;gt;[https://www.parallax.com/product/propeller-2-multicore-microcontroller-chip]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Idee hinter dem Produkt ist, dass statt spezialisierter IO-Komponenten (Timer, PWM, UART) einer der Kerne diese Aufgabe übernehmen kann, was mehr Flexibilität erlaubt, da man nicht auf die Funktionen angewiesen ist, die der Hersteller eingebaut hat.&lt;br /&gt;
&lt;br /&gt;
Programmiert wird der &amp;#039;&amp;#039;Propeller&amp;#039;&amp;#039; in der eigens für ihn entwickelten Hochsprache [[Spin (Programmiersprache)|SPIN]] und in [[Assemblersprache|Assembler]]. Die Hochsprache Spin wird jedoch nicht in [[Maschinencode]] übersetzt, sondern in einen Zwischencode ([[Bytecode]]) transformiert, der von einem Bytecode-[[Interpreter]] im Prozessor abgearbeitet wird. Parallax stellt als integrierte Entwicklungsumgebung das „Propeller Tool“ kostenlos zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Sowohl der Prozessor als auch die Programmiersprache SPIN (inklusive Compiler und Byte-Code-Interpreter) wurden von [[Chip Gracey]], dem Mitbegründer und heutigen Vorsitzenden von Parallax, entwickelt.&lt;br /&gt;
&lt;br /&gt;
Mittlerweile kann der Propeller auch in anderen Sprachen wie  [[BASIC]], [[C (Programmiersprache)|C]] oder [[Forth (Programmiersprache)|Forth]] programmiert werden; verschiedene [[Compiler]] existieren als freie Software und als kommerzielle Produkte.&lt;br /&gt;
&lt;br /&gt;
== Mehrkern-Architektur ==&lt;br /&gt;
Jeder der acht 32-Bit-Kerne, auch als &amp;#039;&amp;#039;Cog&amp;#039;&amp;#039; bezeichnet, besitzt eine elementare [[Arithmetisch-logische Einheit|ALU]], die Division nicht direkt unterstützt, sowie ein [[Random Access Memory|RAM]] für 512 32-Bit-breite [[Datenwort#Abweichende Bedeutungen|long words]] (zusammen also 2&amp;amp;nbsp;[[Binärpräfix#Verhältnis binärer und dezimaler Präfixe|KiB]]) in dem sowohl ausführbarer Code als auch Daten abgelegt werden können. Selbstmodifizierender [[Maschinencode|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.)&lt;br /&gt;
&lt;br /&gt;
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-Digital-Wandler]] nach dem [[Delta-Sigma-Modulation|Sigma-Delta-]]Verfahren und umgekehrt als [[Digital-Analog-Wandler]] mittels [[Pulsbreitenmodulation]] zu gebrauchen) und auf einen Videogenerator (erzeugt [[RGB-Signal]]e zur direkten Ansteuerung eines Computer-Displays oder [[Composite Video|Composite]]-Signale für einen Fernseher gemäß der [[NTSC]]- oder [[Phase Alternating Line|PAL]]-Norm).&lt;br /&gt;
&lt;br /&gt;
Gemeinsam genutzte Ressource ist ein Speicher von 64&amp;amp;nbsp;[[Binärpräfix#Verhältnis binärer und dezimaler Präfixe|KiB]], dessen untere Hälfte als [[Random Access Memory|RAM]] und dessen obere Hälfte als [[Read Only Memory|ROM]] ausgelegt ist. Um sicherzustellen, dass höchstens ein &amp;#039;&amp;#039;Cog&amp;#039;&amp;#039; gleichzeitig auf diesen Speicher zugreift, findet das sogenannte [[Round Robin (Informatik)|Round-Robin]]-Verfahren Anwendung, bei dem jeder &amp;#039;&amp;#039;Cog&amp;#039;&amp;#039; während eines kleinen Zeitfensters exklusiv auf den gemeinsamen Speicher zugreifen kann, bevor der nächste &amp;#039;&amp;#039;Cog&amp;#039;&amp;#039; an der Reihe ist. Dieser [[Multiplexer]] wird in diesem Zusammenhang von Parallax auch als &amp;#039;&amp;#039;Hub&amp;#039;&amp;#039; bezeichnet.&lt;br /&gt;
&lt;br /&gt;
== Geschwindigkeit und Energiemanagement ==&lt;br /&gt;
Der Systemtakt kann intern erzeugt oder von außen angelegt werden. Er kann durch einen auf dem Chip integrierten [[Phase-locked loop|PLL]]-Taktvervielfacher um den Faktor 1, 2, 4, 8 oder 16 erhöht werden.&lt;br /&gt;
&lt;br /&gt;
Der PLL-Multiplikatorwert kann zur Laufzeit verändert werden, was die Energieeffizienz erhöhen kann. Beispielsweise kann der 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 dessen Code nicht dafür entworfen wurde, mit solchen Veränderungen zurechtzukommen), da alle Cogs einen gemeinsamen Takt haben.&lt;br /&gt;
&lt;br /&gt;
== ROM-Erweiterungen ==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* ein Bitmap-[[Schriftart|Font]]-Satz für Bildschirmausgabe&lt;br /&gt;
* eine logarithmische Tabelle (Basis 2, 2048 Einträge)&lt;br /&gt;
* eine [[Antilogarithmus|antilogarithmische]] Tabelle (Basis 2, 2048 Einträge) für Umrechnungen&lt;br /&gt;
* eine [[Sinus]]-Tabelle (16 Bit, 2049 Einträge)&lt;br /&gt;
&lt;br /&gt;
== Bauformen ==&lt;br /&gt;
Der Parallax Propeller ist verfügbar in den Bauformen 40-Pin-[[Dual in-line package|DIP]], 44-Pin-[[Quad Flat Package|QFP]], oder als besonders platzsparender [[Surface Mounted Device#Lötanschlussflächen unter dem Gehäuse, „Leadframe“ und „Grid-Arrays“|QFN]]. Besonders die DIP-Bauform ist wegen der einfachen Handhabung bei Hobbyanwendern beliebt.&lt;br /&gt;
&lt;br /&gt;
== Externes EEPROM ==&lt;br /&gt;
Der Propeller kann beim Start 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.&lt;br /&gt;
&lt;br /&gt;
== Open Source ==&lt;br /&gt;
Die Hardware des Propeller wurde als [[Verilog]]-Source unter der [[GPL]] veröffentlicht.&amp;lt;ref&amp;gt;{{Webarchiv|url=http://www.parallax.com/microcontrollers/propeller-1-open-source |wayback=20140813103229 |text=parallax.com |archiv-bot=2022-12-25 14:09:35 InternetArchiveBot }}&amp;lt;/ref&amp;gt; Auch der ROM-Code wurde als kommentierter Quelltext veröffentlicht.&amp;lt;ref&amp;gt;{{Webarchiv |url=http://forums.parallax.com/showthread.php/101483-Propeller-ROM-source-code-HERE |wayback=20140826110816 |text=Archivierte Kopie |archiv-bot=2019-05-06 02:47:25 InternetArchiveBot}}&amp;lt;/ref&amp;gt; Somit kann der gesamte Prozessor nachvollziehbar auf einem [[FPGA]] nachgebildet werden.&lt;br /&gt;
&lt;br /&gt;
Auch die Entwürfe für den P2 sind öffentlich verfügbar, sodass man den Chip vorab erproben und Verbesserungsvorschläge einbringen kann.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=Shane Avery, Chip Gracey, Vern Graner&lt;br /&gt;
   |Titel=Programming and customizing the multicore propeller microcontroller – the official guide&lt;br /&gt;
   |Verlag=Mcgraw-Hill&lt;br /&gt;
   |Ort=New York&lt;br /&gt;
   |Datum=2010&lt;br /&gt;
   |ISBN=978-0-07-166450-9&lt;br /&gt;
   |Sprache=en}}&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
{{commonscat}}&lt;br /&gt;
Herstellerseiten:&lt;br /&gt;
* [https://www.parallax.com/propeller-1/#p1-specs Propeller 1 P8X32A 8-core Architecture] (englisch)&lt;br /&gt;
* [https://www.parallax.com/propeller-2/#p2-specs Propeller 2 P2X8C4M64P Multicore Microcontroller] (englisch)&lt;br /&gt;
&lt;br /&gt;
Downloadseiten:&lt;br /&gt;
* [https://obex.parallax.com/ Propeller Object Exchange] (englisch)&lt;br /&gt;
* [https://www.parallax.com/microcontrollers/propeller Propeller Articles, Software, and Documentation Downloads] (englisch)&lt;br /&gt;
&lt;br /&gt;
Weiterführende Links:&lt;br /&gt;
&amp;lt;!-- * [http://www.cool-robotix.de/phpbb3 German Parallax Propeller Users Group (de)] --&amp;gt;&lt;br /&gt;
* {{Webarchiv |url=http://propeller.wikispaces.com/ |text=Propeller-Wiki |wayback=20150118190525}} (englisch)&lt;br /&gt;
* [https://hive-project.de/ Forum und Wiki zu einem Computerprojekt auf Propeller-Basis] (deutsch)&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Mikrocontroller]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Thomas Dresler</name></author>
	</entry>
</feed>