================================================================= APTP: APA/ATP ================================================================= APA: Asynchronous Packet Automata source routing network coordinates back-pressure flow control ATP: Asynchronous Token Protocol static state unclocked operation exchange verification ================================================================= ATP: Asynchronous Token Protocol ================================================================= logical states T(oken) B(it) 00 x empty 01 o occupied 10 0 0 11 1 1 send handshake x -- x 0,1 -> x 0,1 <- o x -> o x <- x receive handshake x -- x x <- 0,1 o -> 0,1 o <- x x -> x send/receive signals send receive O x11xx xxoox TO _--__ _____ BO _--__ __--_ TI _____ _--__ BI __--_ _--__ I xxoox x11xx swap handshake x -- x 0,1 -> x 0,1 <- 0,1 o -> 0,1 o <- o x -> o x <- x simultaneous swap handshake x -- x 0,1 <> 0,1 o <> o x <> x missed simultaneous swap handshake x -- x 0,1 <> 0,1 o <> x x -> x port states out out in in 00 00 x x empty 00 01 x o send acknowledge 00 10 x 0 receive available 00 11 x 1 receive available 01 00 o x receive acknowledge 01 01 o o swap accept 01 10 o 0 receive accept 01 11 o 1 receive accept 10 00 0 x send available 10 01 0 o send accept 10 10 0 0 swap available 10 11 0 1 swap available 11 00 1 x send available 11 01 1 o send accept 11 10 1 0 swap available 11 11 1 1 swap available ================================================================= APA: Asynchronous Packet Automata ================================================================= 1 1 1 0A2 0D2-0E2 3 3 3 | | | 1 1 1 0B2-0C2-0F2 3 3 3 A -> E A: {3212^|key:value;...;} B: {212^1|key:value;...;} C: {12^01|key:value;...;} D: {2^301|key:value;...;} E: {^0301|key:value;...;} A -> F A: {322^|key:value;...;} B: {22^1|key:value;...;} C: {2^01|key:value;...;} F: {^001|key:value;...;} A flood A: {FFFF^|key:value;...;} B: {FFF^1|key:value;...;} C: {FF^01|key:value;...;} D: {F^301|key:value;...;} F: {F^001|key:value;...;} E: {^0301|key:value;...;} E: {^3001|key:value;...;} set key values: key1:value1;key2:value2; query key values: key1:?;key2:?; query all key values: ?:? buffer overflow truncation {3212^|key1:value1;key2:val#} special characters: \{^|:;?#} escape characters: \\ \{ \^ \| \: \; \* \? \# \}