Forum: Mikrocontroller und Digitale Elektronik Schnell rechnen mit Gleitkomma, welcher µC?


von Bernd H. (Gast)


Lesenswert?

Hallo,

meine Frage ist eigentlich ganz einfach: Gibt es einen µC, am besten 
einen mit gcc-Port, der einen mathematischen Koprozessor hat bzw. 
schnell mit Gleitkommazahlen rechnen kann, aber NICHT so ein Riesen-SoC 
ist, der externes SDRAM braucht und externes Flash etc.?

Hintergrund ist, ich möchte eine eigene GPS-Lösung rechnen, da kommt man 
um Gleitkommazahlen nicht drum rum. Ich brauche kein Betriebssystem und 
keine komplexe Peripherie, und auch nicht besonders viel Speicher. Nur 
halt Rechenpower.

von Klaus W. (mfgkw)


Lesenswert?

du bist sicher, daß Festkommazahlen nicht reichen?

Ok, falls sich die Erde unerwartet um mehrere Zehnerpotenzen dehnt, 
könnten Gleitkommazahlen sinnvoll sein.

von ./. (Gast)


Lesenswert?


von Karl H. (kbuchegg)


Lesenswert?

Bernd H. schrieb:

> Hintergrund ist, ich möchte eine eigene GPS-Lösung rechnen, da kommt man
> um Gleitkommazahlen nicht drum rum.

Eigene ballistische Interkontinentalraketen?

von Klaus (Gast)


Lesenswert?

Klaus Wachtler schrieb:
> Ok, falls sich die Erde unerwartet um mehrere Zehnerpotenzen dehnt,
> könnten Gleitkommazahlen sinnvoll sein.

Dann sollte er aber schnell sein, damit er mit der Rechnung fertig ist, 
bevor sie platzt

MfG Klaus

von (prx) A. K. (prx)


Lesenswert?

Man kann auch ohne FPU mit Fiesskommazahlen rechnen. Und bei 32-Bittern 
ist das noch nicht einmal sonderlich langsam.

Aber wenn dir danach gelüstet, die ziemliche frischen STM32F4 haben eine 
single precision FPU an Bord. Nun bleibt natürlich die Frage, ob single 
precision ausreicht.

von Bernd H. (Gast)


Lesenswert?

Ihr habt bestimmt alle schon einmal eine GPS-Lösung rein mit 
Festkomma-Arithmetik implementiert und wollt sie mir gerne zeigen?

Scherz beiseite, die Ephemeris-Daten kommen zum großen Teil mit 32 bit 
Auflösung rein, die Pseudorange- und Phasenmessungen kommen mit 64 bit 
Auflösung. Und darauf muss man dann eine Unmenge trigonometrischer 
Funktionen werfen.

Natürlich lässt sich jede Aufgabe auch in Festkomma-Arithmetik lösen, 
das will ich nicht bestreiten. Es ist halt nur nicht immer sinnvoll. 
Eine GPS-Positions-Berechnung gehört wohl ganz sicher in die Schublade 
"du willst eine FPU benutzen".

von (prx) A. K. (prx)


Lesenswert?

Es gibt einen gut eingeübten Forenreflex, der bei Erwähnung von 
Fliesskommarechnung sofort mit "nimm Festkommarechnung" antwortet. Ohne 
gross nachzudenken, denn oft stimmt es auch. Aber eben nicht immer, und 
das hier dürfte so ein Fall sein.

Dieses "um Himmels willen keine Fliesskommarechnung!" hat auch damit zu 
tun, dass Zwerge wie ein ATmega8 dafür recht viel wertvolles Flash 
opfern müssen. Wenn man allerdings 128KB Flash hat und einen 32-Bit Core 
mit Barrelshifter, dann relativiert sich das und der Vorteil von 
Festkommarechnung schwindet.

von Bernd H. (Gast)


Lesenswert?

Single precision reicht leider nicht aus.

Viele GPS-Module sind ARM-basiert und nutzen - nehme ich zumindest an - 
soft float. Allerdings rechnen die preiswerten Module keine 
Phasenlösung, und auch nur mit einer Frequenz von 1 bis 5 Hertz.

Da bleibt der Rechenaufwand in Grenzen. Möglicherweise machen sie sogar 
zumindest in Teilen des Algorithmus Festkomma-Arithmetik.

Das taugt bei mir aber nicht, da ich die Hardware nutzen möchte, um 
einen Algorithmus zu entwickeln und zu verfeinern. Bei 
Festkomma-Arithmetik müsste ich mir bei jeder kleinen Änderung wieder 
Gedanken über die Skalierung machen, das möchte ich gerne vermeiden.

Warum nicht auf dem PC? Das Teil soll in einem UAV mitfliegen.

von henning (Gast)


Lesenswert?

in einem projekt lasse ich mehrere iir-filter mit double laufen, im 
kHz-Bereich. ARM7, 72 MHz. double war kaum langsamer als float. ein 
cortex M3 mit 100 MHz bringt nochmal ein klein wenig.

von Purzel H. (hacky)


Lesenswert?

Eine PC-Stromschleuder ? Die ist noch weit weg. Nimm einem AVR32UC3C, 
der hat eine FPU. Und falls die Aufloesung nicht taugt kann man mit 
einer Software library nachhelfen.

von (prx) A. K. (prx)


Lesenswert?

Renesas hat in der SH2 Reihe welche mit FPU.

von Klaus W. (mfgkw)


Lesenswert?

A. K. schrieb:
> Es gibt einen gut eingeübten Forenreflex, der bei Erwähnung von
> Fliesskommarechnung sofort mit "nimm Festkommarechnung" antwortet. Ohne
> gross nachzudenken, denn oft stimmt es auch.

Und eben deshalb lohnt sich die Nachfrage, ob es wirklich sein muß.
Als Maschinenbauer bin ich der Letzte, der Gleitkommarechnung 
prinzipiell ablehnt.
Aber Nachhaken ist immer sinnvoll, schließlich gibt eine FPU nicht 
umsonst und ohne FPU ist Festkomma schneller.

von Peter D. (peda)


Lesenswert?

Bernd H. schrieb:
> schnell mit Gleitkommazahlen rechnen kann

Gehts nicht konkreter?
Ich geh ja auch nicht zum Geldautomaten und gebe ein: "viel", sondern 
einen bestimmten Wert.

Wie oft kommen neue Daten rein, wieviele Millionen Rechenschritte müssen 
damit gemacht werden und wie schnell muß ausgegeben werden?

Wenn es aber nur für einen Menschen ist, dann kann das jeder 4Bitter 
schnell genug. Der Mensch kann nur sehr langsam ablesen (2..5 Werte/s).


Peter

von Nils S. (kruemeltee) Benutzerseite


Lesenswert?

Bernd H. schrieb:
> aber NICHT so ein Riesen-SoC
> ist, der externes SDRAM braucht und externes Flash etc.?

Die "powervollste" Lösung in DIL und TQFP wäre wohl ein Propeller Chip, 
8 CPU @ 80mhz, overclocking ~110Mhz ohne Probleme.
Das Problem dabei wird aber der gcc sein, der noch in Arbeit ist, und 
vor allem holst du dir mit so einem Chip was Propritäres, es gibt keinen 
"kompatiblen" Nachfolger mit mehr Leistung, ...

Was hast du gegen SoCs? Die gibts ja auch auf (neudeutsch:) 
"Breakout-Boards" und sehr auf Energie Sparen bedacht, komplett mit 
allem drauf, was dazu gehört.

Ältere PC104 mit P2/3/Celeron/Athlon/... gibts auch für 15...50 Euro. 
Leider ist man da gleich mal bei 20...30 Watt nur für den Rechner.

Ein micro2440/mini2440 ohne Display wär vielleicht eine gute Lösung. Du 
hast ein Betriebssystem, gcc, eine Hardware-Basis mit richtig Power und 
es ist billig.
Noch Leistungsfähigere Boards sind gerade am kommen, solangsam werden 
die auch bezahlbar.

Meine Meinung, mit einem kleinen SoC oder ARM-Board wirst du am 
glücklichsten und kostet wahrscheinlich genausoviel, als wenn du selber 
anfängst Platinen zu machen - mit Lochraster und Steckbrett wirst du bei 
der Leistung nicht weit kommen.

von (prx) A. K. (prx)


Lesenswert?


von (prx) A. K. (prx)


Lesenswert?

Nils S. schrieb:

> Die "powervollste" Lösung in DIL und TQFP wäre wohl ein Propeller Chip,
> 8 CPU @ 80mhz, overclocking ~110Mhz ohne Probleme.

Wenn schon in dieser Richtung, dann XMOS. Die single Core Version (4 
Threads a 100MHz) gibts in LQFP.

von Purzel H. (hacky)


Lesenswert?

Das GPS Signal kommt alle sekunde neu rein. Dh man hat 1 sekunde pro 
zyklus.

von Christian B. (casandro)


Lesenswert?

Also klassisch nimmt man für solche Anwendungen DSPs. Die gibts in 
Festkomma und in Fließkomma.

von Joe R. (joer)


Lesenswert?


von asd (Gast)


Lesenswert?

> aber NICHT so ein Riesen-SoC
> ist, der externes SDRAM braucht und externes Flash etc.?

Das muß man ja nicht alles selber löten, gibts auch als fertiges Board 
an das man "nur" noch seine serielle Konsole und seine Hardware 
anschließen muß, mit einem Embedded Linux vorinstalliert. Z.B. 
http://www.taskit.de/produkte/stamp9g45/index.htm
Da könnte Software-Float schnell genug sein.

von Joe R. (joer)


Lesenswert?

asd schrieb:
> Das muß man ja nicht alles selber löten
Genau, ist alles im PIC32 drin, ;-) Joe

von Frank K. (fchk)


Lesenswert?

Nano Oschi schrieb:
> Eine PC-Stromschleuder ? Die ist noch weit weg. Nimm einem AVR32UC3C,
> der hat eine FPU. Und falls die Aufloesung nicht taugt kann man mit
> einer Software library nachhelfen.

Habe ich das noch richtig in Erinnerung, dass die FPU dort nur vom IAR 
unterstützt wird, während der GCC momentan noch keine FPU-Unterstützung 
dafür hat, oder hat sich das inzwischen geändert?

fchk

von klausr (Gast)


Lesenswert?

Hat noch keiner die neuen Cortex-M4 genannt? Demo Board z.B. das STM32F4 
Discovery. Natürlich kann diskutieren, ob man wirklich eine FPU 
braucht...

von Frank K. (fchk)


Lesenswert?

klausr schrieb:
> Hat noch keiner die neuen Cortex-M4 genannt? Demo Board z.B. das STM32F4
> Discovery. Natürlich kann diskutieren, ob man wirklich eine FPU
> braucht...

Doch, und sie haben nur eine Single-Precision-FPU, was dem Fragesteller 
nicht ausreicht. double muss es sein.

fchk

von Joe R. (joer)


Lesenswert?

Warum muss es denn eine FPU sein?
Bei 1s Zyklus wäre auch bei umfassenden Berechnungen eine Soft FPU 
ausreichend.

Vielleicht sogar 4-fach genau: http://www.nongnu.org/hpalib/

von Bernd H. (Gast)


Lesenswert?

Danke für eure Tipps, ich komme gar nicht mehr hinterher mit dem 
Datenblatt klicken. Ich denke, etwas passendes ist wahrscheinlich schon 
dabei.

Wer sagt, dass das GPS-Signal einmal pro Sekunde reinkommt? Das Signal 
kommt kontinuierlich rein, und zwar kommen da ziemlich genau 
1.575.420.000 Vollwellen pro Sekunde, von deren jede auf Bruchteile von 
Grad aufgelöst werden kann.

Nochmal: Ich möchte nicht NMEA-Daten von einem GPS-Modul entgegennehmen 
und damit rechnen, sondern ich möchte eine Phasenlösung aus den Rohdaten 
errechnen, und zwar möglichst mit 10 Hz.

von Arc N. (arc)


Lesenswert?

Renesas RX610 z.B. R5F56108 mit 2 MiB Flash (wenn man Platz für Tabellen 
braucht ;-)) und 128 kiB SRAM on board, FPU (single precision) + einige 
DSP-Befehle.
Liegt mit dem GCC (KPIT GNURX) beim Coremark/MHz
http://www.coremark.org/benchmark/index.php
deutlich vor allen Cortex-M3, die M4s (z.B. Freescales Kinetis) sind 
z.Z. nur mit dem Green Hills Compiler schneller...
(bei den Messwerten muss man trotzdem aufpassen, da einige Controller 
nur bei der Codeausführung aus dem SRAM so schnell sind bzw. das Flash 
nicht schnell genug ist...)

von Joe R. (joer)


Lesenswert?

Da Du bisher noch nicht wissen kannst welche Rechenleistung wirklich 
benötigt wird, wäre eine skalierbare Plattform nützlich.

Letzter Versuch, dann habt Ihr Ruhe vor mir...

Das (kostenlose) MPLAB hat auch einen Emulator und Soft FPU. Mal schnell 
zum testen...

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002

von Arc N. (arc)


Lesenswert?

Joe Redfish schrieb:
> Da Du bisher noch nicht wissen kannst welche Rechenleistung wirklich
> benötigt wird, wäre eine skalierbare Plattform nützlich.
>
> Letzter Versuch, dann habt Ihr Ruhe vor mir...
>
> Das (kostenlose) MPLAB hat auch einen Emulator und Soft FPU. Mal schnell
> zum testen...
>
> 
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002

Gibt's von Renesas/KPIT Cummins auch...und kann, wie die div. Compiler 
für die ARMs, auch C++
http://am.renesas.com/tool/
http://www.kpitgnutools.com/
günstige Eval-Kits inkl. JTAG-Debugger z.B.
http://www.glyn.de/News-Events/Presseinformation?Seite=3772

An den TO:
Cortex-A8 auf einem SO-DIMM falls die bisherigen Vorschläge nicht 
reichen
http://www.glyn.de/data/glyn/media/doc/TX53-Datasheet.pdf

von Willi (Gast)


Lesenswert?

A. K. schrieb:
> Renesas hat in der SH2 Reihe welche mit FPU.

SH7216 rechnet mit 64-bit float.
Mit 200MHz und Ausführung von zwei Befehlen/Takt gibt es in der 
Preislage nichts schnelleres.
http://am.renesas.com/products/mpumcu/superh/sh7216/sh7216/sh7216_root.jsp

von Uwe (Gast)


Lesenswert?

TMS320C67x oder Multicore TMS320C66x

von iaoffline (Gast)


Lesenswert?

Bernd H. schrieb:
> Das Signal
> kommt kontinuierlich rein, und zwar kommen da ziemlich genau
> 1.575.420.000 Vollwellen pro Sekunde, von deren jede auf Bruchteile von
> Grad aufgelöst werden kann.

und wie willst du das mathematisch machen? Das ist HF und auch im 
Spreizbandverfahren. Du geht eine Phasenwinkelmessung doch nur in 
Hardware.

von (prx) A. K. (prx)


Lesenswert?

Willi schrieb:

> Mit 200MHz und Ausführung von zwei Befehlen/Takt

Bei 64bit Fliesskomma aber nicht mehr. ;-)

von Willi (Gast)


Lesenswert?

A. K. schrieb:
> Bei 64bit Fliesskomma aber nicht mehr. ;-)

Ohne Deine ausdrückliche Betonung hätte das doch niemand gemerkt :-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.