SmallCacheInner-Writes.oracle
Pradeep Sindhu May 6, 1988 11:20:11 pm PDT
TEST COMPLETE
NB: Each line corresponds to one cycle of the DynaBus clock
The state of the cache following Reset is: SmallCacheArrayStateValues.cacheStateValueA
← Logic.SetOracleFileName["SmallCacheInnerTest", "SmallCacheInner-Writes"]
← SmallCacheLogic.ArrayPutState[SmallCacheLogic.cacheStateValueA]
Perform the reset sequence:
Assert Reset till x's get flushed out (the last signal appears to be RamForP, which settles 3 cycles after BCtlRamForBCWS6, which settles in cycle 6):
Pradeep Sindhu May 6, 1988 6:28:09 pm PDT
D D D n n D D B B G G I P P P P | D H B B B R S P P P P P
S A E D D S S C D L r S m C B D | B d D O S e S R F F D R
h d x F R e e y a e a S o m y a | u r a w h q t e a a a e
i d e r e r l c t n n t d d t t | s C t n a u o j u u t s
f r c e s i e l a g t o e I e a | O y a e r e p e l l a c
t e u e e a c e I t p I n S | u c O r e s O c t t h
C s t z t l t 0 n h I n e | t l u O d t u t C e
k s e e I n l | e t u O t o d
n I | O t u d u
n | u t e l
| t e
|
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x x x xx x --A
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x x x xx x
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x x x xx x --B
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x x x xx x
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x 0 x xx x --A
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x 0 x xx x
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x 0 x xx x --B
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x 0 x xx x
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x 0 x xx x --A
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x 0 x xx x
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x 0 x xx x --B
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x 0 x xx x
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x 0 x xx x --A
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x 0 x xx x
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x 0 x xx x --B
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x 0 0 x xx x
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x 0 0 x xx x --A
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x 0 0 x xx x
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x 0 0 x xx x --B
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x 0 0 x xx x
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x 0 0 x xx x --A
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x 0 0 x xx x
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x 0 0 x xx x --B
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x
Check that chip Id can be read out (scan path 0):
D D D n n D D B B G G I P P P P | D H B B B R S P P P P P
S A E D D S S C D L r S m C B D | B d D O S e S R F F D R
h d x F R e e y a e a S o m y a | u r a w h q t e a a a e
i d e r e r l c t n n t d d t t | s C t n a u o j u u t s
f r c e s i e l a g t o e I e a | O y a e r e p e l l a c
t e u e e a c e I t p I n S | u c O r e s O c t t h
C s t z t l t 0 n h I n e | t l u O d t u t C e
k s e e I n l | e t u O t o d
n I | O t u d u
n | u t e l
| t e
|
( 0 1 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 1 1 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 1 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 1 1 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 1 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 1 1 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x --B
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x --A
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x --B
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x --A
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x --B
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x --A
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x --B
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x --A
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x --B
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x --A
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x --B
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x --A
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x --B
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x --A
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x --B
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x --A
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 1 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x
Shift In MyId (scan path 1) (Recall that MyId is only one bit so only one bit needs to be shifted in):
D D D n n D D B B G G I P P P P | D H B B B R S P P P P P
S A E D D S S C D L r S m C B D | B d D O S e S R F F D R
h d x F R e e y a e a S o m y a | u r a w h q t e a a a e
i d e r e r l c t n n t d d t t | s C t n a u o j u u t s
f r c e s i e l a g t o e I e a | O y a e r e p e l l a c
t e u e e a c e I t p I n S | u c O r e s O c t t h
C s t z t l t 0 n h I n e | t l u O d t u t C e
k s e e I n l | e t u O t o d
n I | O t u d u
n | u t e l
| t e
|
( 0 1 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 1 1 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 1 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 1 1 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 1 0 1 1 1 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 1 1 0 1 1 1 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 1 ) 1 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 1 0 0 1 1 1 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 1 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x
SmallCacheInner-Writes:
Do Word writes to each of the lines
PWriteHit[52] (line 7):
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F 52 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F 52 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F 11 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 11 | x 0 xxxx 0 0 0 0 0 0 x xx x
PWriteHit[58] (line 6):
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F 58 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F 58 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F 22 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 22 | x 0 xxxx 0 0 0 0 0 0 x xx x
PWriteHit[8F] (line 5):
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F 8F | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F 8F | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F 33 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 33 | x 0 xxxx 0 0 0 0 0 0 x xx x
PWriteHit[AF] (line 4):
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F AF | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F AF | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F 44 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 44 | x 0 xxxx 0 0 0 0 0 0 x xx x
PWriteHit[CC] (line 3):
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F CC | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F CC | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F 55 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 55 | x 0 xxxx 0 0 0 0 0 0 x xx x
PWriteHit[D7] (line 2):
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F D7 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F D7 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F 66 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 66 | x 0 xxxx 0 0 0 0 0 0 x xx x
PWrite-NoWritePermission[25] (line 1):
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F 25 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F 25 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F 77 | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 77 | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 x x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 1 1 xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
PWrite-NoWritePermission[39] (line 0):
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F 39 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F 39 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F 88 | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 88 | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 x x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 1 1 xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
Then read them back to verify the contents
PReadHit[52]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 52 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 52 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 11 x
PReadHit[58]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 58 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 58 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 22 x
PReadHit[8F]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 8F | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 8F | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 33 x
PReadHit[AF]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 AF | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 AF | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 44 x
PReadHit[CC]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 CC | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 CC | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 55 x
PReadHit[D7]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 D7 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 D7 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 66 x
PReadHit[25]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 25 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 25 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 11 x
PReadHit[39]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 39 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 39 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 00 x
Do Byte writes to each of the lines (write FF to word and then clear one or more bytes); for one of the byte writes make sure that the byte data has zeros in only the bytes were trying to write to ensure we weren't just lucky.
PWriteHit[52]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F 52 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F 52 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F FF | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 FF | x 0 xxxx 0 0 0 0 0 0 x xx x
PWriteHit[52]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 1 52 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 1 52 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 1 FC | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 FC | x 0 xxxx 0 0 0 0 0 0 x xx x
PWriteHit[58]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F 58 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F 58 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F FF | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 FF | x 0 xxxx 0 0 0 0 0 0 x xx x
PWriteHit[58]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 2 58 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 2 58 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 2 00 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x
PWriteHit[8F]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F 8F | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F 8F | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F FF | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 FF | x 0 xxxx 0 0 0 0 0 0 x xx x
PWriteHit[8F]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 4 8F | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 4 8F | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 4 00 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x
PWriteHit[AF]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F AF | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F AF | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F FF | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 FF | x 0 xxxx 0 0 0 0 0 0 x xx x
PWriteHit[AF]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 8 AF | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 8 AF | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 8 00 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x
PWriteHit[CC]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F CC | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F CC | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F FF | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 FF | x 0 xxxx 0 0 0 0 0 0 x xx x
PWriteHit[CC]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 9 CC | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 9 CC | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 9 00 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x
PWriteHit[D7]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F D7 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F D7 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 F FF | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 FF | x 0 xxxx 0 0 0 0 0 0 x xx x
PWriteHit[D7]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 7 D7 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 7 D7 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 9 7 00 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x
Read the words back to verify the contents
PReadHit[52]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 52 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 52 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x FC x
PReadHit[58]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 58 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 58 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x F3 x
PReadHit[8F]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 8F | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 8F | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x CF x
PReadHit[AF]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 AF | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 AF | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 3F x
PReadHit[CC]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 CC | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 CC | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 3C x
PReadHit[D7]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 D7 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 D7 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x C0 x
PReadHit[25]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 25 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 25 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 11 x
PReadHit[39]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 39 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 39 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 00 x
Add cycles to let the victim stabilize:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
The victim should now be pointing to line 1. Next, reference line 1 to push victim to line 0:
PReadHit[25]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 25 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 25 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 8 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 11 x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
The state of the cache at this point should be: SmallCacheArrayStateValues.cacheStateValueB
.