Vergleich Typischer Laufzeiten von Instruktionen

Gast #1234142
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
Gast
>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.
Gast
Ausprobieren...

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

9

10
float f, f1, f2;
11
int i;
12

13
i = f         8
14
f = i         8
15

16
i = rand()     135
17
f1 = log(f2)   418
18
f1 = exp(f2)   462
19
f1 = sin(f2)   514
20
f1 = sqrt(f2)  112

Quelle: The Practice of Programming, Kernighan, Pike.
Persönliche Seite
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
Gast
ich hab hier mal ein paar AN's von Atmel gefunden:
http://www.atmel.com/dyn/resources/prod_documents/DOC1973.PDF
http://www.atmel.com/dyn/resources/prod_documents/doc0936.pdf

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
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_manual/MC68040UM.pdf (insb. 
die FPU-Timings)
http://www.freescale.com/files/32bit/doc/ref_manual/MC68060UM.pdf

Aktueller SH-4 von Renesas
http://documentation.renesas.com/eng/products/mpumcu/rej09b0318_sh_4sm.pdf

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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.