-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20

Thema: math-Coprozessor?

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    21.05.2008
    Ort
    Oststeinbek
    Alter
    28
    Beiträge
    607

    math-Coprozessor?

    Anzeige

    Hallo Leute,
    ich brauche für mein Projekt sehr viele Berechnungen, die ich in kürzester Zeit rechnen muss. Ich verwende einen 8bit-AVR(die bekanntlich nicht die schnellsten sind). Auf einen ARM oder ähnliches umzusteigen ist schon zu spät.
    Lohnt es sich, einen math-Coprocessor zu benutzen? Hat man dadurch große Ersparnisse?

    Ich habe an sowas wie den hier gedacht: http://www.sparkfun.com/commerce/pro...oducts_id=8129

    Hat jemand Erfahrungen mit sowas gemacht? Oder kennt jemand vielleicht ein besseres Modell?

    Gruß, Yaro

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    die übertragung der zu rechnenden daten wird aufwändiger sein als
    die eigentliche berechnung selbst denk ich
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.07.2006
    Ort
    Karlsruhe/München
    Alter
    27
    Beiträge
    587
    Die Frage ist, brauchst du Floats oder Doubles?
    Es gibt bei AVRs so eine Regel: Verwende nie Floats solange du nicht einen driftigen Grund dazu hast. Die meisten Berechnungen klappen auch gut mit Festkommazahlen - und dann ist der AVR verdammt schnell. Nur beim Teilen musst du aufbassen - das muss man noch über Software machen... Schneller als jeder Math-Prozessor für 20 $...

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.07.2007
    Alter
    53
    Beiträge
    1.080
    Man müßte wirklich genau auseinanderpflücken, was berechnet werden soll und ob und wie man es optimieren kann. Manchmal kann man Zwischenergebnisse gezielt weiterverwenden, manchmal helfen lookup-tables oder einfach nur 4 Bier, nach denen einem einfällt das man bisher viel komplizierter als nötig gerechnet hat.
    Trotzdem ist so ein Coprozessor eine Interessante Sache und es kann generell nicht schaden, wenn jemand sich sowas mal zulegt, anstöpselt und hier von seinen Erfahrungen berichtet.

    Gruß MeckPommER
    Mein Hexapod im Detail auf www.vreal.de

  5. #5
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Diese matho Coprozessoren sind auch nur µCs wie AVR oder gar PIC mit einem entsprechende Programm. Das wird also kaum schneller als es gleich im AVR zu machen. Wegen der Datenübertragung lohnt sich das ohnehin nur für kompliziertere Rechnungen wie die Winkelfunktionen oder einen Logarithmus, der dann parallel zum normalen µC arbeiten kann.

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.11.2003
    Beiträge
    1.111
    Natürlich gibt es CoP, die wesentlich schneller rechnen als die AVRs, ob der genannte dazu gehört und wieviel das ist kann ich auf den ersten Blick ins Datenblatt nicht erkennen. Das macht ohnehin keinen guten Eindruck auf mich, weil ich entscheidende Dinge nicht finden konnte, wie zB die Taktmenge pro Befehl und die Registerbreite. Zwar reden die von einem 32Bit Prozessor, im Instructionsummary werden 32Bit Werte aber in 4x8Bit aufgeteilt.
    Wenn Du ein Beispiel geben kannst, was berechnet werden soll, könnte man versuchen abzuschätzen, ob das mit einem AVR noch Sinn macht.
    Gruß

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    21.05.2008
    Ort
    Oststeinbek
    Alter
    28
    Beiträge
    607
    Ich brauche öfters Winkelfunktionen (sin, cos usw.), und muss auch ab und zu floats teilen und multiplizieren.
    Lookup-Tabellen habe ich schon einige erstellt, klappt aber leider nicht für alle anwendungen. Optimirt habe ich auch schonn einge Menge, nur scheints, als ob das alles nicht genug sein wird. Ich komme im Moment mit der Leistung zwar noch hin, aber das sollte nicht mehr lange der fall sein, denn ich brauche immer mehr Winkelfunktionen, die ich kaum ersetzen kann, und die Genaugkeit der floats ist auch z.T. notwendig.

    Der co.Prozessor hat eine 32bit Architektur, deswegen habe ich gehofft, dass er viel schneller ist.
    Der bus sollte nicht so ein großes problem sein, über SPI kann es angesteuert werden. Großzügig gerechnet macht das dann ca. 30Takte pro übertragenes Byte, also ca 120T für ein float. Wenn man bedenkt, dass sin() 1500T braucht, scheint das schon etwas Zeitersparniss zu bringen (vor allem, weil man ja parallel noch rechnen kann).

    Aber wie Gock schon meint, ist das mit der 32bit Architektur sone Sache...

    Ich hoffe immernoch, dass jemand erfahrungen mit soeinem Ding gemacht hat, und mir vielleicht ein besseres exemplar empfehlen kann.

    Gruß, Yaro

  8. #8
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Im daten blatt sind die Zeiten angegeben: ein Sin / Cos / Exp dauert etwa 100 µs, ist also etwa so schnell wie der AVR. Wobei mit das für EXP sogar eher langsam vorkommt, der geht normalerweise schneller als Sinus. Dafür kommen mir Funktionen wie ASIN usw relativ schnell vor.

    Sicher wird es schnellere µCs geben.

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    21.05.2008
    Ort
    Oststeinbek
    Alter
    28
    Beiträge
    607
    Ich habe bisher leider nur langsamere gefunden.
    Wie kann denn sowas eigentlich sein? das Ding arbeitet mit 30MHz mit
    einer 32bit Architektur, und ist dabei genauso schnell, wie ein AVR mit
    einer 8bit Architektur und 16MHz

  10. #10
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Mein Tip wäre ganz stark, das das ein PIC ist. Ein PIC mit 30 MHz ist halt mit einem AVR bei 8 MHz vergelichbar.
    Die 32 Bit beziehen sich wohl auf das Fleißkommaformat, nicht auf den eigentlichen Prozessor.

    Edit:
    Von der Pinbelegung könnte das ein
    dsPIC30F3012 sein. Damit wäre der Controller wirklich etwas schneller als ein AVR, aber nicht gerade viel. Das könnte auch erklären warum Arcsin usw. relativ schnell sind. Einen exp besonders langsam zu programmieren ist einfacher als einen genial schnellen Arcsinus.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •