Alle Beiträge von chef

Propeller Cog RAM – Grundlagen

Das Cog RAM ist der Speicher, den jeder Cog für sich alleine hat. Es besteht auf 496 x 32 Bits der für Code und Daten verwendet werden kann. Ferner befinden sich noch 16 spezial Register im RAM. Der USER Speicherbereich geht von $000 bis $1EF und die Spezialregister gehen von $1F0 bis $1FF. Die meisten Befehle beeinflussen alle 32 Bits  einer Adresse. Eine Ausnahme stellen Code selbstmodifizierende Befehle wie MOVS, MOVD, MOVI und der CALL sowie JMPRET dar.

  • MOVS beeinflusst die unteren 9 Bits (B8 bis B0) einer Cog Speicheradresse ohne die anderen Bits zu verändern
  • MOVD macht das selbe mit den nächsten 9 Bits (B17 bis B9) ohne die anderen Bits zu verändern
  • MOVI verändert nur die MSB (Most Significant Bits) B31-B23
  • CALL und JMPRET beeinflussen ebenfalls die unteren 9 Bits (B8 bis B0) des RET Befehls um die Rückkehr aus einer Assembler Subroutine zu vereinfachen
B31 – B23 B22 – B18 B17 – B9 B8 – B0
Befehl Ziel Quelle
MOVI MOVD MOVS, CALL,
or JMPRET

Spezial Register

Addr.

Name

Typ

Funktion

$1F0 PAR Read-Only Boot parameter
$1F1 CNT Read-Only System Counter
$1F2 INA Read-Only Input states for P31-P0
$1F3 INB Read-Only Input states for P63-P32*
$1F4 OUTA Read/Write Output States for P31-P0
$1F5 OUTB Read/Write Output states for P63-P32*
$1F6 DIRA Read/Write Direction States for P31-P0
$1F7 DIRB Read/Write Direction States for P63-P32*
$1F8 CTRA Read/Write Counter A Control
$1F9 CTRB Read/Write Counter B Control
$1FA FRQA Read/Write Counter A Frequency
$1FB FRQB Read/Write Counter B Frequency
$1FC PHSA Read/Write Counter A Phase
$1FD PHSB Read/Write Counter B Phase
$1FE VCFG Read/Write Video Configuration
$1FF VSCL Read/Write Video Scale

* nicht vorhanden im P8X32 Propeller Chip

Propeller Hauptspeicher – Grundlagen

Der 32kByte große Hauptspeicher ist von den RAM’s der einzelnen Cogs separiert.

Ein Programm welches auf einem Cog läuft (egal ob Benutzerprogramm oder der SPIN Interpreter) hat durch die Befehle RDLONG, RDWORD, RDBYTE, WRLONG, WRWORD und WRBYTE Zugriff auf den Hauptspeicher. Diese Befehle werden immer komplett durchgeführt und nie teilweise. Wenn also zwei Cogs nacheinander in den gleichen Hauptspeicherbereich schreiben, so steht dort immer der Wert den der in der zuletzt hineingeschrieben wurde. Dieser Wert ist kein Mischwert aus beiden Schreibzugriffen.

Die Benutzung von Locks hilft einem Cog einen längeren ununterbrochenen Zugriff auf den Hauptspeicher zu bekommen um größere Bereiche des Hauptspeichers zu lesen/beschreiben.

Der Hauptspeicher kann entweder mit 32k x 8 Bits, 16k x 16 Bits, 8k x 32 Bits oder wenn erforderlich eine Mischung aus diesen angesprochen werden. Wenn die Befehle RDLONG oder WRLONG benutzt werden müssen die zwei LSB’s auf null gesetzt werden. Bei den Befehlen RDWORD und WRWORD muss das LSB auf null gesetzt werden.

Der Hauptspeicherinhalt wird beim starten des Propeller von einem externen 32k x 8 Bit I2C EEPROM oder von der Propeller Tool Software einkopiert. Danach startet der SPIN Interpreter im Cog 0, welcher dann beginnt den geladenen SPIN Code auszuführen.

Das externe EEPROM bzw. der vom Tool eingespielte Code muss immer ein SPIN Programm enthalten. Auch wenn dieses SPIN Programm nur dazu dient den Operations Modus des Propeller festzulegen und dann mit anderweitigem Code weiter zu arbeiten.

Der Hauptspeicher enthält keinen ausführbaren Maschinencode wie bei einem normalen Microcontroller. Er enthält nur Daten. Die Interpretation dieser Daten hängt vom laufenden echten Programm in einem der Cog’s ab. Da im Cog 0 zuallererst der SPIN Interpreter startet ist er der Entscheider wie die nachfolgenden Daten interpretiert werden.

Alter 19-Zoll Einplatinencomputer

Auf dem Speicher fand ich noch einen von mir gebautes modulares 19-Zoll Computersystem. Das Netzteil hat eine nachgeschaltete doppelte elektronische Sicherung. Deren Ansprechstrom ist mit einem Potentiometer justierbar. Ist eine solche Sicherung einmal ‘durchgebrannt’ kann man sie nur durch Wegnahme der 220V Versorgung resetten. Der Einplatinencomputer selber ist bestückt mit einer 6502 CPU (4MHz), einer seriellen Schnittstelle SIO 6551und MAX 232 Pegelwandler, einer PIO 8255 und zwei gestapelten SRAM Chips mit getrennt herausgeführten Chipselect Signalen. Ferner ist noch ein ZN429 8-Bit D/A Wandler auf dem Board.

Alter 19-Zoll Einplatinencomputer weiterlesen →

D945GCLF2 Mainboard (Atom 330 Dualcore)

Bei mir wurde es mal wieder Zeit für einen Fortschritt beim Energiesparen. Deswegen habe ich meine beiden VIA Epia Mainboards, ein PD-6000 und ein PD-10000, in Rente geschickt. Deren Stromverbrauch liegt im Betrieb so bei 17 Watt.

Stattdessen habe ich mir für ca. 73 Euro ein D945GCLF2 Intel Mainboard mit Atom 330 Dualcore CPU bestellt. Zusätzlich noch einen 2GB DDR2-800 RAM Riegel und eine 320GB D945GCLF2 Mainboard (Atom 330 Dualcore) weiterlesen →

VIA Epia PD-10000 im Morex 2688 Gehäuse

So, da ist nun mein Morex 2688 Gehäuse und das VIA EPIA PD-10000 Mainboard eingetroffen. Hurtich alles ausgepackt. Die Lieferung ist komplett. Das Platinennetzteil ist im Gehäuse vormontiert.

Dann habe alles zusammen gebaut. Alles bestens. Bis auf eine Ausnahme. Man kann die PCI Riser Card nicht verwenden da der untere VIA Epia PD-10000 im Morex 2688 Gehäuse weiterlesen →

Grafikkarten Kühler Arctic Cooling Accelero S2

4.5.2008

In meinem Arbeits PC habe ich die GeForce 9600GT mit dem Arctic Cooling Accelero S2 für läppische 12 Euro ausgestattet. Den original Kühler habe ich zuerst demontiert. Dieser leistete super Arbeit und drehte nur bei Spielen hoch. Das lautere Geräusch wurde aber von den Geräuschen der Spiele übertönt. Allerdings gab der Lüfter einen hochfrequenten Ton ab der nervte.

Bei der Montage des Grafikkarten Kühler Arctic Cooling Accelero S2 weiterlesen →

DVB-S (SDTV) schneiden und encodieren

Als ich vor langer Zeit anfing mittels DVB-S Karte in einem PC Satelliten TV aufzuzeichnen stellte ich sehr schnell fest, daß die Aufnahmen nie perfekt waren. Es kam immer wieder zu Ton/Bildaussetzern. Die daraus resultierende Bild/Ton-Asynchronität bekommt man mit Handarbeit niemals weg.

Nach einer Weile bekam ich den DVB-S (SDTV) schneiden und encodieren weiterlesen →