Pipeline mit variabler Länge

Gast #2944723
Lesenswert?
• ▲
▼
Hallo.

Ich habe mir das Technical Reference Manual zum ARM Cortex A9 angesehen. 
Da
wird beschrieben, dass der A9 eine variable-length-pipeline hat. Ich 
kenne bisher
nur pipelinig mit Pipelines fester Länge. Wie funktioniert eine variable 
length Pipeline und was ist der Vorteil davon? Google konnte mir leider 
keine Antwort liefern.

Viele Grüße,

moep
#2944775
Lesenswert?
• ▲
▼
@Nun: Eine Prozessorpipeline hat nichts mit Befehlslänge und 
Speicherkapazität zu tun.

@moep: Damit ist gemeint, dass einfache Befehle eine kürzere Pipeline 
haben als komplexere. Ohne dass die komplexeren Befehle mehrere Takte in 
der gleichen Pipeline-Stufe verbringen.

Eine beispielhafte Integer-Execution-Unit kann bei einer Addition nach 
einem Takt fertig sein, bei einer Multiplikation erst nach 3. Trotzdem 
kann diese Unit pro Takt eine Multiplikation ausführen, weil voll 
gepipelined. Diese Teil-Pipeline hat also 3 Stufen, wobei bereits die 
erste Stufe ein Ergebnis auf den Result-Bus geben kann, wenn der grad 
frei ist.
Gast #2945111
Lesenswert?
• ▲
▼
@prx Vielen Dank für deine Erklärung!

Das bedeutet also, dass es mehrere parallele Pipelines gibt und nicht
die Länge der Pipeline an den jeweiligen Befehl angepasst wird, indem
z.B. Stufen übersprungen werden?

Kennst du vielleicht Quellen, bei denen ich weitere Infos dazu finde?

Nochmal Danke,

moep
#2945131
Lesenswert?
• ▲
▼
moep schrieb:
> Das bedeutet also, dass es mehrere parallele Pipelines gibt
> und nicht die Länge der Pipeline an den jeweiligen Befehl angepasst wird,
> indem z.B. Stufen übersprungen werden?

Wie das genau implementiert ist weiss wohl nur ARM und mit Details 
geizen die etwas. Spekulationen auf Basis der offiziellen Info wäre 
Kaffeesatzlesen.

Ich hatte oben illustriert, wie in diesem Zusammenhang der Begriff 
verstanden werden kann. Das war ein Beispiel und bezog sich nicht auf 
den konkreten Einzelfall A9.

Bei einer superskalaren out-of-order Implementierung wie dem A9 muss man 
beim Begriff "Pipeline" ausserdem etwas aufpassen. Denn es gibt da keine 
einzelne simple Pipeline, sondern stets diverse separate Pipelines 
unterschiedlicher Länge, die teils hintereinander und teils parallel 
arbeiten. Beispielsweise ein in-order Frontend (fetch, decode, rename, 
dispatch) auf das ein Sammelsurium unabhängiger Execution Units mit 
individuellen Pipelines folgt.
#2945143
Lesenswert?
• ▲
▼
A. K. schrieb:
> Wie das genau implementiert ist weiss wohl nur ARM und mit Details
> geizen die etwas.

Hier zumindest für den A7:
http://www.wired.com/insights/wp-content/uploads/2011/10/arma7-a7pipeline.png

und A8:
http://i.stack.imgur.com/9dQt4.png

Und hier der A15:
http://regmedia.co.uk/2011/10/20/arm_a15_pipeline_large.jpg


A9 hab ich interessanterweise auch nichts direkt entdecken können.
Düfte aber beim A9 ja ähnlich sein.

Antwort schreiben

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.

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.