Um zu erklären, wie ein Pipeline-Multioperanden-Addierer implementiert werden könnte, zeigt mein Buch das unten gemeldete Bild. Die Idee ist, drei Addierer mit einer 4-stufigen Pipeline zu verwenden. Ich habe jedoch versucht, selbst ein einfaches Zeitdiagramm zu erstellen, um zu überprüfen, ob ich gut verstanden habe, was mein Buch bedeutet, aber ich kann kein Zeitdiagramm schreiben, daher bin ich mir ziemlich sicher, dass ich das Konzept nicht gut verstanden habe.
Also ... Frage, wie dieses Bild interpretiert werden sollte? Praktisches Beispiel?
Ich berichte, was meine Referenz sagt: Abbildung 8.3 (die von mir gepostete) zeigt, dass, wenn der Addierer als vierstufige Pipeline implementiert ist, drei Addierer verwendet werden können, um den maximal möglichen Durchsatz von einem Operanden pro Taktzyklus zu erreichen. Obwohl der Taktzyklus jetzt aufgrund des Pipelining kürzer ist, bleibt die Latenzzeit vom ersten Eingang bis zum letzten Ausgang bei h-stufigem Pipelining für jedes feste h asymptotisch gleich.
x
wird um 1 Zyklus verzögert und das verzögerte Signal aufgerufen
(ist eins älter als x). Die Berechnung scheint 4 Zyklen zu dauern, weil das Ergebnis benannt ist
(es ist
aber ab 4 Zyklen vorher).
Dieses Schema wird in Stufe 2 wiederholt, jedoch mit einer Verzögerung von 2 Zyklen bei Operand 1. Das Ergebnis von Stufe 2 wurde aus x vor 8, 9, 10 und 11 Zyklen berechnet (sagt das Bild).
Die Endsumme summiert alle Eingaben. Ich denke, es ist kein gleitendes Fenster, weil es immer inkrementiert.
Die resultierende Summe heißt s
, aber es liegt ein Fehler vor.
(a) Das ist immer eine von der Verzögerung unabhängige Summe, daher ist der Index -12 irrelevant. ODER
(b) Dem Index soll das erste Ergebnis ungleich Null gespendet werden. Dann muss der Index -15 sein, weil Stufe 3 auch einen Addierer mit 4 Zyklen Verzögerung verwendet.
Ich denke, der richtige Name muss sein .
David Tweed
Benutzer8469759