(SCI) - Technologie und Leistungsanalysen.pdf
(SCI) - Technologie und Leistungsanalysen.pdf
(SCI) - Technologie und Leistungsanalysen.pdf
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
IF PhaseField = NOTRY<br />
EchoPhaseField := DONE;<br />
ELSIF (PhaseField = DOTRY) OR (PhaseField = Retry_B)<br />
EchoPhaseField := DONE;<br />
ELSE {PhaseField = Retry_A}<br />
EchoPhaseField := BUSY_B; SetError;<br />
state := SERVE_B; {Nachfolgezustand einnehmen}<br />
END IF; {PhaseField = NOTRY}<br />
ELSE {inFifo is FULL}<br />
IF PhaseField = NOTRY<br />
EchoPhaseField := BUSY_D;<br />
ELSIF (PhaseField = DOTRY) OR (PhaseField = Retry_B)<br />
EchoPhaseField := BUSY_B;<br />
ELSE {PhaseField = Retry_A}<br />
EchoPhaseField := BUSY_B; SetError;<br />
END IF; {PhaseField = NOTRY}<br />
state := SERVE_B; {Nachfolgezustand einnehmen}<br />
END IF; {Eingangspuffer ist nicht voll}<br />
ELSE {state = SERVE_B}<br />
IF inFifo = NOT FULL {Eingangspuffer ist nicht voll}<br />
IF PhaseField = NOTRY<br />
EchoPhaseField := BUSY_D;<br />
ELSIF (PhaseField = DOTRY) OR (PhaseField = Retry_A)<br />
EchoPhaseField := BUSY_A;<br />
ELSE {PhaseField = Retry_B}<br />
EchoPhaseField := DONE;<br />
END IF; {PhaseField = NOTRY}<br />
ELSE {inFifo is FULL}<br />
IF PhaseField = NOTRY<br />
EchoPhaseField := BUSY_D;<br />
ELSIF (PhaseField = DOTRY) OR (PhaseField = Retry_A)<br />
EchoPhaseField := BUSY_A;<br />
ELSE {PhaseField = Retry_B}<br />
EchoPhaseField := BUSY_B;<br />
END IF; {PhaseField = NOTRY}<br />
END IF; {Eingangspuffer ist nicht voll}<br />
IF AllRetry_BServed = TRUE {Alle Retry_B akzeptiert?}<br />
state := SERVE_NA; {Nachfolgezustand einnehmen}<br />
END IF; {Alle Retry_B akzeptiert}<br />
END IF; {Zustand = SERVE_NA}<br />
END IF; {Paket da}<br />
Da nur diejenigen Sender, die unmittelbar vorher ein negatives Echo von einem<br />
Empfänger mit vollem Receive-Puffer empfangen haben, über dessen Pufferzustand<br />
Bescheid wissen, jedoch nicht andere Knoten, kann es geschehen, daß<br />
an einen Empfänger normale <strong>und</strong> Retry Request- <strong>und</strong> Response-Pakete geschickt<br />
werden. Je nach Zustand des endlichen Automaten <strong>und</strong> je nach Art des<br />
empfangenen Pakets, sendet dieser Echopakete mit entsprechenden Phase-Feldern<br />
zurück. Ebenso ist es auch möglich, daß vom selben Sender multiple offenstehende<br />
Requests an denselben Empfänger abgeschickt werden, bevor das<br />
erste (negative) Echo eintrifft, so daß vom Empfänger, auch wenn er in ein <strong>und</strong><br />
demselben Zustand ist, Echos mit verschiedenen Phase-Feldern erzeugt werden<br />
319