Welchen µC empfehlt ihr als FLOP- Monster?
-
Hallo Forumsbesucher,
meine auf dem M16C erstellte Applikation lahmt. Was am PC in einer Minute durch ist, dauert da über eine halbe Stunde, die Flaschenhälse sind die fehlende FPU (hab' jede Menge double- Berechnungen) sowie die Anbindung der SD-Card über die 1-Byte-Buffer- SPI.
Ansonsten hab' ich noch 1 MB externes SRAM, das 300 kB große Binary läuft im internen Flash, mittelfristig möchte ich den XPort (Ethernet->serial) gegen einen Übertrager tauschen können, so daß ich Ethernet direkt habe.
Ein OS oder so brauch' ich nicht.
Ich weiß, da gibt es etliche Kandidaten, aber an irgendeinem Kriterium hakt es immer:Erstmal will ich nicht fürchterlich viel Geld für C-Compiler/Prommer/Debugger rausschmeißen, mein Regal ist schon voller solcher Leichen, die sich dann doch als untauglich erwiesen haben. Eine gescheite IDE mit Debugger brauche ich aber schon, mehr als 500 Teuronen möchte ich aber dafür nicht riskieren.
Da nur Kleinstauflagen geplant sind, kriege ich nur Fertiger, die bis 0.64 mm Pitch mitspielen, ab 0.5 mm sowieso nur auf eigene Gefahr, kleiner oder BGA kann ich auch nicht händisch bearbeiten.
Wichtig ist mir auch ein Distri, der beim Prototyping mitspielt und nicht die Arschnummer abzieht, wenn man nicht sofort stangenweise einkauft.
Kurz gefragt, was nehmt ihr her, wenn ihr brutale Rechenpower in einem Projekt im Bastelstadium braucht?
-
^^ich würd's mit irgendwas ARM (cortex-a9)-basiertem versuchen. die dürften nicht zu teuer sein und haben 'ne FPU drin. als compiler kannste notfalls GCC nehmen, als debug-interface und für flash-downloads 'OpenOCD', als IDE eclipse. ist zwar, im vergleich zu ner kommerziellen lösung, super-fummelig, kostet aber wenigstens nix.
ach ja, und stell die selbe frage mal hier (kannst als unregistrierter posten): http://www.mikrocontroller.net/forum/mikrocontroller-elektronik
-
+fricky schrieb:
^^ich würd's mit irgendwas ARM (cortex-a9)-basiertem versuchen. die dürften nicht zu teuer sein und haben 'ne FPU drin. ... ist zwar, im vergleich zu ner kommerziellen lösung, super-fummelig, kostet aber wenigstens nix.
ach ja, und stell die selbe frage mal hier (kannst als unregistrierter posten): http://www.mikrocontroller.net/forum/mikrocontroller-elektronikWas die einzelne CPU kostet, ist mir im Prinzip wurscht, was kostet denn eine nicht so fummelige Sache, wegen 200 EUR mehr tu' ich mir kein Gefummel' an, ab 1000 mehr erwacht der Geizhals.
Auf'm µC.net sind sehr viele, sehr engagierte Bastler unterwegs, für die ist der gerade in Arbeit befindliche Prozessor tendenziell immer der Beste für alles. Der Informationsgewinn ohne persönliche Siebung ... naja, werd's dort auch noch absetzen ...
-
vielleicht waere es guenstiger deine algorithmen auf float oder fixpoint umzuschreiben. viele greifen viel zu hastig zu double, vielleicht kannst du etwas zeitkritisches posten und jemand hat ne idee wie das algorithmisch zu optimieren waere.
wenn ich auf mathpower angewiesen waere, wuerde ich auf nen MIPS nehmen, aber ich weiss nicht wie es da mit µC ausschaut.
500teuronen sind aber auch schon ne menge geld, wenn man bedenkt dass man ne ATOM-cpu oder etwas von VIA mit 1GHz und recht guter math power fuer <100 sammt platine bekommt (z.b. mini-itx), was auch nicht sonderlich gross ist.[edit: micro vs mini verwechselt]
[edit: nano-itx gibt es fuer <300Teuro, 12cm x 12cm]
-
pointercrash() schrieb:
Auf'm µC.net sind sehr viele, sehr engagierte Bastler unterwegs, für die ist der gerade in Arbeit befindliche Prozessor tendenziell immer der Beste für alles.
ja, das haste oft. ich bin z.b. grosser NXP-fan und daher empfehle ich dir 'nen LPC32x0: http://www.standardics.nxp.com/products/lpc3000/lpc32x0/
(ich hab manchmal mit seinem kleinen bruder LPC2366 zu tun, ein qualitativ sehr hochwertiges teil). ach ja, ein LPC32x0 kostet etwa 10...12$, bei abnahmemengen unter 25 stück.
-
das ding klingt gut
http://www.eetimes.com/conf/epf/showArticle.jhtml?articleID=9900220&kc=2446 schrieb:
At the same clock frequency and applying the same three ARM implementations, the FIR filter gets much closer to the theoretical maximum performance. The software-only solution is again 4.8 Mflops, but the VFP9 hits 260 Mflops and the VFP10, at 380 Mflops, is almost running at two floating-point operations per cycle.
daten zu double performance hab ich leider nicht gefunden.
-
rapso schrieb:
vielleicht waere es guenstiger deine algorithmen auf float oder fixpoint umzuschreiben. viele greifen viel zu hastig zu double, vielleicht kannst du etwas zeitkritisches posten und jemand hat ne idee wie das algorithmisch zu optimieren waere.
Ich bin der personifizierte Float- Vermeider, in dem Fall geht's leider nicht anders, weil ich ständig mit großen Wertunterschieden rechne. Ich verarbeite CAD- Daten, das Zeug kommt ohnehin als double Floating Point rein. Heißt, ich komme ohnehin nicht mit einer einzigen Integer- Skalierung aus, damit wird das mit Skalierungsrumschleppen fürchterlich unübersichtlich. Da ich nicht nur drei oder vier Zeilen mit Rechnereien hab, sondern so etwa das hundertfache, brauch' ich wirklich doubles.
rapso schrieb:
500teuronen sind aber auch schon ne menge geld, wenn man bedenkt dass man ne ATOM-cpu oder etwas von VIA mit 1GHz und recht guter math power fuer <100 sammt platine bekommt (z.b. mini-itx), was auch nicht sonderlich gross ist.
Ja, sowas Ähnliches hätte ich mir als Alternative überlegt, z.B. so'n Windoof- Netbook, das Rechenzeugs samt GUI als Applikation drauflegen und dann nur noch eine Pinrüttlerplatine mit USB- Anschluß, die dann entsprechend billig ist. Jetzt hab' ich das mal mit einem Petium M (900 MHz)- Rechnerlein getestet, das bewegt sich hart an der Zumutbarkeitsschwelle, weiß nicht, wieviel kräftiger ein Atom zulangt.
+fricky schrieb:
ich bin z.b. grosser NXP-fan und daher empfehle ich dir 'nen LPC32x0: http://www.standardics.nxp.com/products/lpc3000/lpc32x0/
... ach ja, ein LPC32x0 kostet etwa 10...12$, bei abnahmemengen unter 25 stück.rapso schrieb:
das ding klingt gut
http://www.eetimes.com/conf/epf/showArticle.jhtml?articleID=9900220&kc=2446"]
Die ARM- Fans haben gesprochen, Hugh!
OK, die Dinger sehen so aus, als könnten sie alles, was ich brauche, aber wie kriegt man das mit dem TFBGA gebacken? Nen LQFP 144 krieg' ich noch selbst auf die Platine, mitm Messerchen und Kupferlackdraht Fehlerchen gepatcht. Sonst müßte ich 'nen fertigen Riegel kaufen und aufn Carrier- Board setzen.Achja, einen Flaschenhals weniger hab' ich schon, die SDC- SPI- Schnittstelle kann man zu meiner Freude auch übern DMA- Kanal routen. Momentan noch so, daß er das Filesystem auf der Karte völlig zerschießt, aber dafür unheimlich schnell!
Allen Postern erstmal herzlichen Dank!
-
pointercrash() schrieb:
OK, die Dinger sehen so aus, als könnten sie alles, was ich brauche, aber wie kriegt man das mit dem TFBGA gebacken?
gebacken ist das richtige stichwort. mit 'nem ofen. es geht sogar mit 'nem kleinen pizzaofen für hobbyköche, aber erfordert viel fingerspitzengefühl. die ersten versuche gehen oft daneben. such mal bei google nach: lötofen, bga und sowas. kannst es aber auch bei 'nem bestücker in auftrag geben.
pointercrash() schrieb:
Achja, einen Flaschenhals weniger hab' ich schon, die SDC- SPI- Schnittstelle kann man zu meiner Freude auch übern DMA- Kanal routen. Momentan noch so, daß er das Filesystem auf der Karte völlig zerschießt, aber dafür unheimlich schnell!
ich weiss nicht, wie der DMA-controller der LPC32x0s funktioniert, aber bei den kleinen LPCs gibt's einige einschränkungen und die ansteuerung gestaltet sich ziemlich schwierig. zum glück war ein freund von mir FAE bei EBV, der hatte direkten draht zu den NXP-entwicklern und mich gut mit hintergrundinfos versorgt. wenn's erstmal läuft, rennt's wie sau und völlig zuverlässig. ich kann an einem SPI-bus sd-karte, WLAN, ein fest eingebautes flash, nen ethernet-controller und 'nen usb-hostcontroller parallel betreiben, mit variabler clock-speed von 32 bis 10Mhz, je nachdem was das jeweilige bauteil so verkraftet, und alles über DMA.
-
+fricky schrieb:
gebacken ist das richtige stichwort. mit 'nem ofen. es geht sogar mit 'nem kleinen pizzaofen für hobbyköche, aber erfordert viel fingerspitzengefühl. die ersten versuche gehen oft daneben.
Mit 'nem 0,5er Pitch? Da klappt das nicht mehr, da kann ich sie gleich in der Mikrowelle ausbacken, das macht wenigstens noch optisch Spaß
. An 'nem Fertiger werd' ich so nicht vorbeikommen.
+fricky schrieb:
... wenn's erstmal läuft, rennt's wie sau und völlig zuverlässig. ...
Na, ich hatte einfach vergessen, in der Doku nachzusehen, weil die "Ur-" M16Cs da ein wenig eingeschränkt waren, bei den aktuellen kann man fast jede IS in einen DMA- Channel packen, ist auch nicht übermäßig kompliziert. Ich hab' wahrscheinlich mindestens einen "off-by-one-" Bug drin, ist aber umständlich bis gar nicht zu debuggen, also hab ich's mal zurückgestellt, bis mir klar ist, welche Lösung den meisten Sinn macht.
Denn einer interessiert sich dafür, alles in eine Win- DLL gepackt zu bekommen, um das in seine Software zu ziehen, konnte sich aber vor Urlaub nicht zum OK durchringen. Auf der jetzigen Plattform wirds das Performanceziel nicht erreichen und völlig neue Hardware ist halt steinig, da müssten dann auch andere mittelfristige Ziele erreicht werden.
Auf jeden Fall werd' ich mir mal irgendsoein günstiges Testkit für 'nen ARM holen, wenn's mir über den Weg läuft. Diese CPUs imponieren mir sowieso, seit ich mal einen Archimedes3020@work gesehen hab, da stand bei mir ein 386er mit Win 3.1 am Schreibtisch und ich hab' mich echt gefragt, warum sich die Mehrheit für so einen Mist entschieden hat.
-
pointercrash() schrieb:
rapso schrieb:
vielleicht waere es guenstiger deine algorithmen auf float oder fixpoint umzuschreiben. viele greifen viel zu hastig zu double, vielleicht kannst du etwas zeitkritisches posten und jemand hat ne idee wie das algorithmisch zu optimieren waere.
Ich bin der personifizierte Float- Vermeider, in dem Fall geht's leider nicht anders, weil ich ständig mit großen Wertunterschieden rechne. Ich verarbeite CAD- Daten, das Zeug kommt ohnehin als double Floating Point rein. Heißt, ich komme ohnehin nicht mit einer einzigen Integer- Skalierung aus, damit wird das mit Skalierungsrumschleppen fürchterlich unübersichtlich. Da ich nicht nur drei oder vier Zeilen mit Rechnereien hab, sondern so etwa das hundertfache, brauch' ich wirklich doubles.
musst du es also zeichnen? oder ist das ein plotter oder leiterplatten schnitzen oder..?
du solltest trotzdem versuchen float statt double zu nutzen, wie du in dem link zum arm siehst, ist er auch in etwa doppelt so schnell.rapso schrieb:
500teuronen sind aber auch schon ne menge geld, wenn man bedenkt dass man ne ATOM-cpu oder etwas von VIA mit 1GHz und recht guter math power fuer <100 sammt platine bekommt (z.b. mini-itx), was auch nicht sonderlich gross ist.
Ja, sowas Ähnliches hätte ich mir als Alternative überlegt, z.B. so'n Windoof- Netbook, das Rechenzeugs samt GUI als Applikation drauflegen und dann nur noch eine Pinrüttlerplatine mit USB- Anschluß, die dann entsprechend billig ist. Jetzt hab' ich das mal mit einem Petium M (900 MHz)- Rechnerlein getestet, das bewegt sich hart an der Zumutbarkeitsschwelle, weiß nicht, wieviel kräftiger ein Atom zulangt.
es kommt natuerlich drauf an was man macht und wie gut man programmieren kann, aber ein PentiumM 900 und ein Atom 1600 haben in etwa die selbe leistung. in manchen benchmarks hab ich 3300MFlops gesehen, also ca 15 mal mehr als der ARM mit VP9. netbook/Nettops bekommt man ab ca 150euro, das sind also auch ca 15mal mehr als das arm bord *hehe*
-
rapso schrieb:
musst du es also zeichnen? oder ist das ein plotter oder leiterplatten schnitzen oder..?
du solltest trotzdem versuchen float statt double zu nutzen, wie du in dem link zum arm siehst, ist er auch in etwa doppelt so schnell.Ist in etwa sowas. Ich habe mal testweise den letzten Optimierungspass auf SP- Float umgestellt und die endgerasterten Dateien verglichen - es wirkt sich tatsächlich aus. Nie mehr als ein Voxel, aber ich kann auch nicht brauchen, daß sich diese Fehler über die vielen Berechnungsstufen kaskadieren.
rapso schrieb:
es kommt natuerlich drauf an was man macht und wie gut man programmieren kann, aber ein PentiumM 900 und ein Atom 1600 haben in etwa die selbe leistung. in manchen benchmarks hab ich 3300MFlops gesehen, also ca 15 mal mehr als der ARM mit VP9. netbook/Nettops bekommt man ab ca 150euro, das sind also auch ca 15mal mehr als das arm bord *hehe*
Darf man so nicht vergleichen, beim Nettop kommt ja so alles mit, WLAN, Kartenleser, USB- Host und, und, und, alles fixfertig aufgebaut. Ist auch eine psychologische Frage, wenn jemand mit der Speed unzufrieden ist und fragt, ob's das auch in Schnell gibt, kann ich bei einer eigenen Plattform erstmal nur die Schultern zucken, statt "geh' mal zum Blödmannmarkt und laß Dich dort befaseln" zu sagen.
Ich warte mit der Entscheidung erstmal, bis der eine Interessent aus dem Urlaub zurück ist ...