01.04.2007
Habe im Computerclub 2 Podcast von einem neuen Microcontroller gehört. Er heißt Propeller Chip und hat 8 Kerne. Intern besitzt er ein 32kByte großes RAM und jeder Kern hat nochmal 2kByte RAM für sich selber organisiert zu je 512 x 32Bits. Davon sind die oberen 16 Speicherplätze für spezielle Aufgaben reserviert. Der Propeller hat intern auch noch ein 32kByte großen ROM in dem sein BIOS eingebrannt ist. Der User kann dort nichts speichern.
Die 8 Kerne kann man sich im Kreis um einen zentralen HUB angeordnet vorstellen. Damit nicht jeder Kern gleichzeitig auf gemeinsame Resourcen wie RAM, EEPROM ect. zugreift, wird der Zugriff gemultiplext. Somit kann zu einem Zeitpunkt immer nur einer der Kerne auf die gemeinsamen Resourcen zugreifen.
Beim Bootvorgang versucht der Propeller aus verschiedenen Quellen ein Programm zum abarbeiten zu laden. Zuerst wird das Bootprogramm aus dem ROM in das RAM des Kerns 0 kopiert und ausgeführt. Dieses Programm versucht nun seinerseits ein Programm von einem angeschlossenen PC (über USB/serielle Schnittstelle) zu empfangen und danach auszuführen. Schlägt das fehl, schaut das BIOS ob ein EEPROM angeschlossen ist. Wenn ja kopiert das BIOS den gesammten 32kByte großen EEPROM Inhalt 1:1 in seinen zentralen RAM.
Ist das geschehen, lädt der Kern 0 einen SPIN Interpreter in seinen eigenen RAM und startet diesen. Dieser Interpreter wiederum startet nun das (über USB geladene oder aus dem EEPROM kopierte) Hauptprogramm des USERS.