www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Architektur: Pipelining -> Frage


Autor: Prof. X (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Ich frage mich grad, wie viel Takte ein Befehl in meinem Controller 
braucht. Meiner hat eine 5 Stage Instruction Pipeline:
IF - ID - EX - MA - WB

und parallel:
WB
MA - WB
EX - MA - WB
ID - EX - MA - WB
IF - ID - EX - MA - WB

D.h. jeder Befehl braucht immer 5 Takte aber: die Befehle unternander 
sind nur 1 Takt auseinander (bei voller Auslastung).

Hab ich das jetzt richtig verstanden??

Dann würde der Befehl
i++
so - wie jeder andere Befehl - 5 Takte beanspruchen. Bei 100MHz also 
50ns ?

Autor: ARM-Fan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
i++ ist kein Maschinenbefehl und somit vergleichst du Äpfel mit Birnen.

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Prof. X

>Ich frage mich grad, wie viel Takte ein Befehl in meinem Controller
>braucht. Meiner hat eine 5 Stage Instruction Pipeline:

Das steht im Datenblatt.

>D.h. jeder Befehl braucht immer 5 Takte aber: die Befehle unternander
>sind nur 1 Takt auseinander (bei voller Auslastung).

>Hab ich das jetzt richtig verstanden??

Nein.

>Dann würde der Befehl
>i++
>so - wie jeder andere Befehl - 5 Takte beanspruchen. Bei 100MHz also
>50ns ?

Nein. Du verwechselst Latenz (Durchlaufzeit des Befehls durch die 
gesamte Verarbeitungskette) mit Durchsatz (Wieviel Befehle werden pro 
Takt beendet). Deine Latenz ist 5 Takte, dein Durchsatz 1 Befehl/Takt. 
Das bezieht sich aber auf Assembler.
Was ein C Compiler an Befehlen braucht, um "i++" in Assembler umzusetzen 
ist verschieden, aber wenn der Compilr was taugt und Optimierungen aktiv 
sind wird meistens ein einziger Assemblerbefehl draus.

MFG
Falk

Autor: Prof. Y (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Möglicherweise......

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.