27.01.2014 Aufrufe

(SCI) - Technologie und Leistungsanalysen.pdf

(SCI) - Technologie und Leistungsanalysen.pdf

(SCI) - Technologie und Leistungsanalysen.pdf

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!