5.6.2.2 Litmus Test 2 (Impossible Sequence)

Initially, location x contains 1:

Pi

 

Pj

 

 

[U1]Pi:W<8>(x,2)

[V1]Pj:W<8>(x,3)

 

 

[V2]Pj:R<8>(x,2)

 

 

[V3]Pj:R<8>(x,3)

 

 

Analysis:

 

<1>

Since V1 precedes V2 in processor issue sequence, V1 is visible to V2.

<2>

V2 reading 2 implies U1 is the latest (in order) write to x visible to V2.

<3>

From <1> and <2>, V1 U1.

<4>

Since U1 is visible to V2, and they are issued by different processors, U1 V2.

<5>

By the processor issue constraints, V2 V3.

<6>

From <4> and <5>, U1 V3.

<7>

From <6> and the visibility rules, U1 is visible to V3.

<8>

Since both V1 and the initialization of x are BEFORE U1, U1 is the latest write to x

 

that is visible to V3.

 

<9>

By the definition of storage, it follows that V3 should read the value written by U1,

 

in contradiction to the stated result.

Thus, once processor Pj reads a new value written by U1, any other writes that must precede the read must also precede U1. V3 must read 2.

5.6.2.3 Litmus Test 3 (Impossible Sequence)

Initially, location x contains 1:

Pi

Pj

Pk

 

 

 

[U1]Pi:W<8>(x,2)

[V1]Pj:W<8>(x,3)

[W1]Pk:R<8>(x,3)

[U2]Pi:R<8>(x,3)

 

[W2]Pk:R<8>(x,2)

 

 

 

Analysis:

<1>

U2 reading 3 implies V1 is the latest write to x visible to U2, therefore U1 V1.

<2>

W1 reading 3 implies V1 is visible to W1, so V1 W1 W, therefore V1 is also

 

visible to W2.

<3>

W2 reading 2 implies U1 is the latest write to x visible to W2, therefore V1 U1.

<4>

From <1> and <3>, U1 V1 U1.

Again, time cannot go backwards. If V1 is ordered before U1, then processor Pk cannot read first the later value 3 and then the earlier value 2. Alternatively, if V1 is ordered before U1, U2 must read 2.

5–18Alpha Architecture Handbook

Page 230
Image 230
Compaq ECQD2KCTE manual Litmus Test 2 Impossible Sequence, Litmus Test 3 Impossible Sequence