Analysis of a Biphase Mark Protocol with Uppaal and PVS Frits - - PowerPoint PPT Presentation

analysis of a biphase mark protocol with uppaal and pvs
SMART_READER_LITE
LIVE PREVIEW

Analysis of a Biphase Mark Protocol with Uppaal and PVS Frits - - PowerPoint PPT Presentation

Analysis of a Biphase Mark Protocol with Uppaal and PVS Frits Vaandrager and Adriaan de Groot Nijmegen Institute for Computing and Information Sciences Biphase Mark Protocol Convention for representing both a string of bits and clock edges in


slide-1
SLIDE 1

Analysis of a Biphase Mark Protocol with Uppaal and PVS

Frits Vaandrager and Adriaan de Groot Nijmegen Institute for Computing and Information Sciences

slide-2
SLIDE 2

Biphase Mark Protocol Convention for representing both a string of bits and clock edges in a square wave. Used, for instance, in:

  • 1. Intel 82530 Serial Communications Controller
  • 2. Ethernet
  • 3. Optical communications
  • 4. Satellite telemetry applications
  • 5. · · ·
slide-3
SLIDE 3

Biphase Mark Protocol (cnt)

1 1 1

cell cell edges signals sent mark subcell code subcell if these two signals are equal, a 0 was sent if these two signals are different, a 1 was sent message sampling distance

slide-4
SLIDE 4

Challenges

  • 1. During some time after the sender generates an edge, reading

may produce any value.

  • 2. Receiver samples wire nondeterministically at some point during

each clock cyle.

  • 3. Clock drift and jitter.
slide-5
SLIDE 5

Overview of Uppaal Model

Wire Coder Sampler Decoder Clock new

  • ut

tick get put in w Tester tock s Clock2 edge

slide-6
SLIDE 6

Variables and Constants in Uppaal Model (instance) chan get, put, edge, tick, tock; int m, n; int[0,1] in, out, v, w, new, old, buf; clock x, y, z; const cell 32; const mark 16; const sample 23; const min 81; const max 100; const edgelength 81;

slide-7
SLIDE 7

Clock

X0 x <= max x >= min tick! x := 0

slide-8
SLIDE 8

Coder

C4 C3 C2 C1 C0 get? in == 1 edge! n < mark - 1 tick? n := n+1 in == 0 edge! n < cell - 1 tick? n := n+1 n == cell - 1 tick? n := 0 edge! n == mark - 1 tick? n := n+1

slide-9
SLIDE 9

Wire

W2 W1 z <= edgelength W0 w := 1 - w fuzz! edge? z := 0, v := 1 - v z == edgelength w := v settle! edge?

slide-10
SLIDE 10

Sampler

s == 0 new := w, s := 1 Sample!

slide-11
SLIDE 11

Decoder Clock

y <= max y >=min && s==1 tock! y := 0, s := 0

slide-12
SLIDE 12

Decoder

D2 D1 D0 new != old tock?

  • ld := new

put! m := 0 m == sample - 1 tock?

  • ut := (new != old),

m := m + 1,

  • ld := new

m < sample - 1 tock? m := m+1 new == old tock?

slide-13
SLIDE 13

Tester

T3 T2 T1 Error T0 get! in := 1 get! buf := in, in := 1

  • ut != in

put? put? get! in := 0

  • ut == in

put? get! buf := in, in := 0

  • ut == buf

put?

  • ut != buf

put? get!

slide-14
SLIDE 14

Requirements for Correctness Receiver detects edge at begin cell

mark · min > 2 · max + edgelength

Receiver does not sample too early (sample − 1) · min > mark · max + edgelength Receiver does not sample too late

cell · min > (sample + 2) · max + edgelength

slide-15
SLIDE 15

Receiver misses edge at begin cell

v new w

Coder start transmission of 1 Coder completes mark phase maximally fast

max max

Sampler samples at very end long clock cycle

mark * min edgelength

Sampling at very beginning long clock cycle

slide-16
SLIDE 16

Receiver samples too early

mark * max edgelength (sample - 1) * min

Coder starts transmission of 1 Coder completes mark phase maximally slow

min

Decoder receives 0 High voltage sampled at beginning clock cycle Sampling at end of cycle, right after edge is generated

v w new

slide-17
SLIDE 17

Receiver samples too late

Coder start transmission of 0 Coder completes transmission maximally fast

max max edgelength v new w cell * min sample * max

Sampling at very end of cycle, 1 received Decoder detects edge Sampling at very beginning clock cycle

slide-18
SLIDE 18

Main result The Error state cannot be reached if and only if the three stated inequalities hold for the parameters. Proof Manual proof, formalized with PVS. Several instances of the 3 coun- terexamples and 36 auxiliary invariants (including 15 trivial ones) have been found resp. checked using Uppaal. Example of invariant that Uppaal cannot handle in general:

C2 ∨ (C3 ∧ in = 0)

⇒ n · min ≤ z − x ≤ n · max

slide-19
SLIDE 19

Relative Time We assume 0 < min ≤ max and define ρ =

min max

E =

edgelength max

slide-20
SLIDE 20

Requirements for Correctness (rephrased) Receiver detects edge at begin cell

mark · ρ

> 2 + E Receiver does not sample too early (sample − 1) · ρ >

mark + E

Receiver does not sample too late

cell · ρ

>

sample + 2 + E

slide-21
SLIDE 21

Maximal Tolerance on Timing ρ > max(2+E

mark , mark+E sample−1, sample+2+E cell

) Example Configurations with E = 1 cell 16 32 18 mark 8 16 5 sample 11 23 10 ρ 0.91 0.82 0.73

slide-22
SLIDE 22

Physical Clocks Typical clocks used in hardware are incorrect by less than 15.10−6 seconds per second. Thus, in practice, ρ ≥ 1 − 15.10−6 1 + 15.10−6 ≈ 0.99997

slide-23
SLIDE 23

Minimizing Cell Size Assume ρ = 1 and E = 1. Then we derive

mark

> 3

sample

> mark + 2

cell

> sample + 3 Hence, values of parameters are at least

mark = 4 sample = 7 cell = 11

If we require cell = 2 · mark then minimal values are

mark = 7 sample = 10 cell = 14

slide-24
SLIDE 24

Related Work Moore (’94) Verification of few instances with Boyer-Moore theorem prover. Derived timing bounds not optimal. No clock jitter, E = 1. Ivanov & Griffioen (’98) Automatic verification of few instances with HyTech. Polling only at the end of a read cycle. Van Hung (’96, ’98) Full parameter analysis with PVS + Duration Calculus. Debatable modelling assumptions. No clock jitter. Bensalem et al (’00) & Henzinger et al (’01) Partial success in proving parameter constraints automatically.

slide-25
SLIDE 25

Conclusions (cf Moore)

  • 1. We offer our model primarily as a catalyst for thought.

Model says certain instances will work. Will they?

  • 2. We ignore various engineering realities: metastability, reflection,

noise, and distortion, etc.

  • 3. Uppaal very helpful in model construction, and for gaining insight.

Model checking essential for analysis of additional features, such as termination and bus collisions.

  • 4. PVS essential for handling parameter constraints in full generality.