mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Vergleich Typischer Laufzeiten von Instruktionen


Autor: Hans Riegel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
G'n Abend,

ich bin auf der Suche nach einer Gegenüberstellung von Laufzeiten 
einiger Instruktionen durchgeführt mit integer und float Variablen.

z.B:
Division zweier Integer-Variablen  1ns
Division zweier Float-Variablen   18ns

Wenn dann noch long, double etc. dabei wären, wäre das natürlich spitze. 
Weiß jemand wo ich sowas herbekomme? Ich suche mit seit eienr halben 
Stunden die DSL-Leitung heiß ;o)

Auf welchen µC sich die Messugnen beziehen ist mir prinzipiell egal.

Schönen Gruß

Hans

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Auf welchen µC sich die Messugnen beziehen ist mir prinzipiell egal
Da das ganze von sehr viele Parameter abhängt, wirst du auch nichts 
finden.

Der Compieler hat einfluss darauf, der Prozessortyp, die Taktfrequenz, 
die Optimierung und bestimmt noch einige dinge mehr.

Kanst dir also auch werte ausdenken, der Praktische nutzen wird der 
gleiche sein.

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ausprobieren...

Maschine: MIPS R10000, 250MHz. Angaben in Nanosekunden.
            int   float   double
a++           8       8        8
a = b + c    12      12       12
a = b - c    12      12       12
a = b * c    12      11       11
a = b / c   114      28       58
a = b % c   114


float f, f1, f2;
int i;

i = f         8
f = i         8

i = rand()     135
f1 = log(f2)   418
f1 = exp(f2)   462
f1 = sin(f2)   514
f1 = sqrt(f2)  112

Quelle: The Practice of Programming, Kernighan, Pike.

Autor: Peter Diener (pdiener) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde an deiner Stelle einige Instruktionen in C schreiben, mit 
WINAVR compilieren und im Assembercode die Instruktionen anschauen und 
mit den im Datenblatt angegebenen Taktzyklen ausrechnen, wie lange das 
dauert.

Das bezieht sich dann auf die ATMega Serie von Atmel und das Ergebnis 
sind Takte pro Funktionsaufruf.

Wenn du wissen willst, wie lange das im realen System dauert, musst du 
zusätzlich die Taktfrequenz des Controllers wissen.

Grüße,

Peter

Autor: Roland Praml (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hab hier mal ein paar AN's von Atmel gefunden:
http://www.atmel.com/dyn/resources/prod_documents/...
http://www.atmel.com/dyn/resources/prod_documents/...

im Allgememeinen dauern Divisionen SEHR lange. Und mit der Komplexität 
des Datentyps steigt die Komplexität.

Man sollte deshalb auf Divisionen (und Multiplikationen) soweit wie 
möglich verzichten, bzw. hierzu eine 2er-Potenz verwenden, da dann nur 
geshiftet werden muss.

Gruß
Roland

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hans Riegel wrote:
> G'n Abend,
>
> ich bin auf der Suche nach einer Gegenüberstellung von Laufzeiten
> einiger Instruktionen durchgeführt mit integer und float Variablen.
>
> z.B:
> Division zweier Integer-Variablen  1ns
> Division zweier Float-Variablen   18ns
>
> Wenn dann noch long, double etc. dabei wären, wäre das natürlich spitze.
> Weiß jemand wo ich sowas herbekomme? Ich suche mit seit eienr halben
> Stunden die DSL-Leitung heiß ;o)

Klassische 680x0
http://www.freescale.com/files/32bit/doc/ref_manua... (insb. 
die FPU-Timings)
http://www.freescale.com/files/32bit/doc/ref_manua...

Aktueller SH-4 von Renesas
http://documentation.renesas.com/eng/products/mpum...

> Auf welchen µC sich die Messugnen beziehen ist mir prinzipiell egal.
>
> Schönen Gruß
>
> Hans

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hans Riegel wrote:
> Auf welchen µC sich die Messugnen beziehen ist mir prinzipiell egal.

Dann dürften Deine Zahlen ebenso aussagekräftig sein, wie ein Vergleich 
zwischen Rollator und Concorde.


Peter

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.