Hallo zusammen, weiß jemand, ob es Mathe IC´s gibt, mit denen man z.B. schwache oder mittelstarke µC "mathematisch upgraden" kann? Also z.B. ansprechbar über UART, I2C oder SPI. Also so, dass man Argumente übermittelt und ein Ergebnis zurück bekommnt. Ich brauche SQRT SIN ArcSin Google hilft mir mit "Math IC" nicht wirklich weiter. viele Grüße!
Nennt sich CortexM3, M4 oder M7... gibts mit beliebigen Schnittstellen... Was es bringen soll musst du entscheiden...
Die Zeit der Mathe-Coprozessoren ist seit Jahrzehnten vorbei. Welchen Prozessor hast du, dass er für simple Funktionen zu schwach ist? Selbst, wenn es einen passenden IC gäbe, was meinst du, wie lange das Übertragen der Befehle, Argumente und Resultate dauern würde im Vergleich zur direkten Berechnung?
Früher nannte sich so etwas Coprozessor oder Arithmetikprozessor und wurde für viel Geld als Zusatz z.B. in PCs verbaut. 8087, 80287 und 80387 waren verbreitete Typen für 8088/86, 80286 und 80386. Bei 68k-Prozessoren gab es korrespondierend 68881 und 68882. Heutzutage wird die Floatingpoint-Fähigkeit allerdings üblicherweise gleich in den eigentlichen Prozessorkern eingebaut, was auch daran liegt, daß das Übertragen der zu berechnenden Daten und des Ergebnisses länger dauert als das eigentliche Berechnen.
Mathematische Coprozessoren... ...die sind aber eher als Begleiter ihrer Prozessorbrüder designed worden. 8086/8087 80286/80287 80386/80387 https://de.wikipedia.org/wiki/Koprozessor
Chefkoch schrieb: > weiß jemand, ob es Mathe IC´s gibt, mit denen man z.B. schwache oder > mittelstarke µC "mathematisch upgraden" kann? gab es früher, heute nicht mehr. Ein schnellerer µC ist billiger. Nimmt man halt keinen AVR mit 20MHz, sondern einen ARM mit 200MHz und dann geht es auch ohne Mathe IC In hartnäckigen Fällen helfen DSPs oder gleich ein FPGA.
Chefkoch schrieb: > Also z.B. ansprechbar über UART, I2C oder SPI. Also so, dass man > Argumente übermittelt und ein Ergebnis zurück bekommnt. Ich brauche > SQRT > SIN > ArcSin Gab es früher zu 80286 Zeiten mit der 287 FPU. Heute hat man in einem Cortex-M4 etwa die 10-fache Rechenleistung eines früheren PC-AT/286. Da ist die FPU eingebaut. Wenn du daher Mathematik in einem schwachbrüstigen uC benötigst fällt mir heute ein: a) entsprechende MATH-Libs verwenden sofern die Rechenzeit das erlaubt b) entsprechenden uC verwenden der FPU an board hat. Alles andere ist Behelf. rgds
Chefkoch schrieb: > Ich brauche > SQRT > SIN > ArcSin Einfach nur:
1 | #include <math.h> |
Und wenn es schneller sein soll, dann bringt es nichts, wenn Du es erst umständlich über die UART schaufeln mußt.
6a66 schrieb: > Gab es früher zu Verfluxt, einma ausm Raum raus und nicht abgesendet .... und schon hat sich das Thema erledigt :) rgds
Allgemeine Mathematik mag uninteressant sein für Co Prozessoren. Aber für Spezielaufgaben gibt es nach wie vor spezielle Prozessoren. Atmel hatte zb. spezielle Chipkarten auf AVR Basis mit eingebauten encryption/decryption Hardware. Damit kann man Daten sehr schnell verschlüsseln und entschlüsseln, schneller und energiesparender als es ein PC machen kann. Da lohnt es sich schon; Daten zur Berechnung zu übergeben und das Ergebnis zurückzuholen. Diese Karten bekommt man nicht leicht, es war ein richtiger Papierkrieg notwendig, um die importieren zu können.
Peter D. schrieb: > Einfach nur:#include <math.h> > Und wenn es schneller sein soll, dann bringt es nichts, wenn Du es erst > umständlich über die UART schaufeln mußt. reicht nicht immer, eigentlich muss man dem Compiler mit -lm sagen das er die Mathebibliothek mitlinken soll.
hinz schrieb: > Wenn es topmodern sein soll: Am9511. Der ist cool. Der braucht für einen arccos aber mehrere Millisekunden...
Wenn man sich das Blockschaltbild anguckt, dann sieht das so aus als werkelt im Inneren das Am9511 wohl auch nur ein Prozessor.
Ist es auch, zumindest eine State-Machine mit passenden Look-Up-Tabellen.
Es gibt tatsächlich noch Rechenknechte für schwachbrüstige Controller: http://micromegacorp.com/products.html Ob sich solch ein Käfer bei den Preisen und Rechenleistungen von ARM-basierten Controllern lohnt...
Bernhard D. schrieb: > Es gibt tatsächlich noch Rechenknechte für schwachbrüstige Controller: > > http://micromegacorp.com/products.html Da kann man sich aber auch einen ATtiny85 oder ATmega88 passend programmieren; mit dem 'richtigen' Compiler werden auch 64 bit double verarbeitet.
hinz schrieb: > Wenn es topmodern sein soll: Am9511. Interessant das Teil, eine Stack machine, wäre gut für Sprachen wie Forth. Aber hochmodern? 1977? Aus Sicht einer 6502 CPU vielleicht schon ... :D
Bernhard D. schrieb: > Es gibt tatsächlich noch Rechenknechte für schwachbrüstige Controller: > > http://micromegacorp.com/products.html Das ist ein dsPIC33 (vermutlich ein dsPIC33FJ32MC30x), und der hat noch genügend Flash, RAM und I/Os frei, um die Aufgaben des schwachbrüstigen Controllers, den er unterstützden soll, gleich mit zu erledigen. Dabei fällt dann auch die zeitraubende I²C- bzw. SPI-Kommunikation weg. Insofern verstehe ich den Sinn dieses Produkts nicht so ganz.
So ganz nebenbei.. kann man Floatingpoint oft durch genaue Analyse des Problems durch Integer ersetzten.
Yalu X. schrieb: > Bernhard D. schrieb: >> Es gibt tatsächlich noch Rechenknechte für schwachbrüstige Controller: >> >> http://micromegacorp.com/products.html > > Das ist ein dsPIC33 (vermutlich ein dsPIC33FJ32MC30x), und der hat noch > genügend Flash, RAM und I/Os frei, um die Aufgaben des schwachbrüstigen > Controllers, den er unterstützden soll, gleich mit zu erledigen. Dabei > fällt dann auch die zeitraubende I²C- bzw. SPI-Kommunikation weg. > > Insofern verstehe ich den Sinn dieses Produkts nicht so ganz. Ich schon. Das ist für Leute, die sich nicht mit den Details der Mathematik "die Finger schmutzig machen" wollen. Oder kürzer gesagt: Leute die eigentlich den falschen Beruf ergriffen haben. Davon gibt es einige. Viel zu viele, wenn ich in meiner Erinnerung krame.
Dampf T. schrieb: > So ganz nebenbei.. kann man Floatingpoint oft durch genaue Analyse des > Problems durch Integer ersetzten. Ja, aber das Problem ist halt, dass der generische C-Verbrecher nix kann außer geklauten Code notdürftig zusammen zu leimen. Eigene Problemanalysen überfordern ihn maßlos, eigene Umsetzungen der Ergebnisse erst recht. Was Wunder, i.d.R. beherrscht er ja nicht einmal die selbst gewählte Sprache richtig. Eben nur gerade soweit, wie nötig, um die C&P-"Programmierung" irgendwie notdürftig bewerkstelligen zu können... Nur deswegen hat er ja die Sprache gewählt: Es gibt da halt so verführerisch viele kostenlose Wichsvorlagen, die allesamt suggerieren: du brauchst nicht selber programmieren zu können und du brauchst auch die Sprache nicht wirklich zu beherrschen...
Da gibt es auch noch OpAmps, lineare und logarithmische. Spezialzahlen wie Pi und e, Materialkonstanten wie c, Avogadrozahl, eV, usw. kann man gut vorgespeichert auf CD-ROM vorhalten, mit beliebig vielen Nachkommastellen. Sinus und Cosinus greift man Zeitsynchron per ADC von einem Oscillator ab, der darf einfach nicht langsam sein. Sonst: Nachhilfe in diskreter Numerik und Algorithmen .
http://www.computinghistory.org.uk/det/17386/Digital-Signal-Processing-IC-Handbook/ es gab von Plessey spezielle Prozessoren, z.B. "Pythagoras-Processor" PDSP16330 aber das ist 20 Jahre her. Später hiessen sie Zarlink und Mitel.
:
Bearbeitet durch User
> Ja, aber das Problem ist halt, dass der generische C-Verbrecher ... > Nur deswegen hat er ja die Sprache gewählt: ... Ich verstehe (u.a. aus vielen Beiträge in diesem Forum) das C eigentlich immer deshalb gewählt wird, weil man schliesslich damit (und nur mit C) sooo tief und systemnah programmieren tut. Das soll jetzt im Bereich mathematische Berechnungen nicht mehr gelten? Komisch... Zum Glück hab ich noch einen funktionierenden HP-16c da!
Thomas W. schrieb: > Aber hochmodern? > > 1977? Heh! Der Am9511 auf Erweiterungskarten im Apple II hat mitgeholfen das Space Shuttle zu bauen. Etwas mehr Respekt bitte! ;)
Guido Körber schrieb: > Thomas W. schrieb: >> Aber hochmodern? >> >> 1977? > > Heh! Der Am9511 auf Erweiterungskarten im Apple II hat mitgeholfen das > Space Shuttle zu bauen. Etwas mehr Respekt bitte! > > ;) Und der 6502 wird noch in 1000 Jahren verwendet werden! http://www.digitalretropark.de/wp-content/uploads/2013/07/bender.jpg
Axel S. schrieb: >> Insofern verstehe ich den Sinn dieses Produkts nicht so ganz. > > Ich schon. Das ist für Leute, die sich nicht mit den Details der > Mathematik "die Finger schmutzig machen" wollen. Wieso braucht man, um die Sinusfunktion aus einer Bibliothek aufzurufen, mehr mathmatische Details, als wenn man sie von einem externen Prozessor berechnen lässt?
> Ich brauche > SQRT > SIN > ArcSin wie oft denn pro Sekunde, und in welchem Format? Für 1/sqrt gibt es übrigens eine superschnelle Formel. https://en.wikipedia.org/wiki/Fast_inverse_square_root
DAS Produkt schlechthin für alle Koprozessorhörigen war natürlich der Intel i487, der dann sogar den Hauptprozessor (i486SX) deaktiverte. Aber Hauptsache, man hatte einen separaten Korpozessor statt sich gleich einen i486 zu kaufen.
Achim S. schrieb: > Für 1/sqrt gibt es übrigens eine superschnelle Formel. > https://en.wikipedia.org/wiki/Fast_inverse_square_root Da gibt es zig papers, das Prinzip lässt sich auf vieles erweitern, was auf log2(n) rückführbar ist. Dazu muss man unter Umständen nicht mal auf float32 wandeln, sondern hält Mantisse und Exponent einzeln in z.B. einer Struktur. mfg mf
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.