Victim.oracle
Pradeep Sindhu November 3, 1987 11:17:32 pm PST
Paraminder Sahai June 29, 1987 5:23:05 pm PDT
TEST COMPLETED Feb 11, 1987 [PSS]
Modified March 17, 1987 5:36:39 pm PST to add AVct
Checked again after putting together cache top level June 30, 1987 2:29:48 pm PDT [PSS]
Signal Order is:
R x P P V     | U     V     A
e L C C M     | s     i     V
s d t t a     | e     c     c
e U l l t     |      t     t
t s S F c     |      i
 e h r h     |      m
  f z      |
  t V      |
  V i      |
  i c      |
Check that it resets properly:
1 x 0 0 ( x x x x x )  | ( x x x x x )  ( x x x x x )  x
1 x 0 0 ( x x x x x )  | ( x x x x x )  ( 0 0 0 0 1 )  1
Check that LdUse works:
1 0 0 0 ( 0 0 0 0 0 )  | ( x x x x x )  ( 0 0 0 0 1 )  1
0 1 0 0 ( 1 1 1 1 1 )  | ( x x x x x )  ( 0 0 0 0 1 )  1
0 0 0 0 ( 0 0 0 0 0 )  | ( 1 1 1 1 1 )  ( 0 0 0 0 1 )  1
Check that Victim clears each of the Use bits in turn
0 0 0 0 ( 0 0 0 0 0 )  |  ( 1 1 1 1 0 )  ( 0 0 0 1 0 )  1
0 0 0 0 ( 0 0 0 0 0 )  |  ( 1 1 1 0 0 )  ( 0 0 1 0 0 )  1
0 0 0 0 ( 0 0 0 0 0 )  |  ( 1 1 0 0 0 )  ( 0 1 0 0 0 )  1
0 0 0 0 ( 0 0 0 0 0 )  |  ( 1 0 0 0 0 )  ( 1 0 0 0 0 )  1
0 0 0 0 ( 0 0 0 0 0 )  |  ( 0 0 0 0 0 )  ( 0 0 0 0 1 )  1
0 0 0 0 ( 0 0 0 0 0 )  |  ( 0 0 0 0 0 )  ( 0 0 0 0 1 )  1
Turn on a few Use bits and then bump Victim by setting its Use bit
0 0 0 0 ( 0 0 0 0 0 )  |  ( 0 0 0 0 0 )  ( 0 0 0 0 1 )  1
0 1 0 0 ( 0 0 1 1 0 )  |  ( 0 0 0 0 0 )  ( 0 0 0 0 1 )  1
0 1 0 0 ( 0 0 0 0 1 )  |  ( 0 0 1 1 0 )  ( 0 0 0 0 1 )  1
0 0 0 0 ( 0 0 0 0 0 )  |  ( 0 0 1 1 1 )  ( 0 0 0 0 1 )  1
0 0 0 0 ( 0 0 0 0 0 )  |  ( 0 0 1 1 0 )  ( 0 0 0 1 0 )  1
0 0 0 0 ( 0 0 0 0 0 )  |  ( 0 0 1 0 0 )  ( 0 0 1 0 0 )  1
0 0 0 0 ( 0 0 0 0 0 )  |  ( 0 0 0 0 0 )  ( 0 1 0 0 0 )  1
0 0 0 0 ( 0 0 0 0 0 )  | ( 0 0 0 0 0 )  ( 0 1 0 0 0 )  1
Check that Set overrides Clear
0 0 0 0 ( 0 1 0 0 0 )  |  ( 0 0 0 0 0 )  ( 0 1 0 0 0 )  1
0 1 0 0 ( 0 1 0 0 0 )  |  ( 0 0 0 0 0 )  ( 0 1 0 0 0 )  1
0 1 0 0 ( 0 1 0 0 0 )  |  ( 0 1 0 0 0 )  ( 0 1 0 0 0 )  1
0 0 0  0  ( 0 0 0 0 0 )  | ( 0 1 0 0 0 )  ( 1 0 0 0 0 )  1
Check that FreezeVictim works
0 0 0 0 ( 0 0 0 0 0 )  |  ( 0 1 0 0 0 )  ( 1 0 0 0 0 )  1
0 1 0 0 ( 1 1 1 1 1 )  | ( 0 1 0 0 0 )  ( 1 0 0 0 0 )  1
0 0 0 1 ( 0 0 0 0 0 )  |  ( 1 1 1 1 1 )  ( 1 0 0 0 0 )  1
0 0 0 0 ( 0 0 0 0 0 )  |  ( 0 1 1 1 1 )  ( 1 0 0 0 0 )  1
0 0 0 0 ( 0 0 0 0 0 )  |  ( 0 1 1 1 1 )  ( 1 0 0 0 0 )  1
Check that ShftVictim works (try both oldUse=0 and oldUse=1)
0 0 1 0 ( 0 0 0 0 0 )  |  ( 0 1 1 1 1 )  ( 1 0 0 0 0 )  1
0 0 0 0 ( 0 0 0 0 0 )  |  ( 1 1 1 1 1 )  ( 1 0 0 0 0 )  1
0 0 0 0 ( 0 0 0 0 0 )  |  ( 0 1 1 1 1 )  ( 0 0 0 0 1 )  1
0 0 0 0 ( 0 0 0 0 0 )  |  ( 0 1 1 1 0 )  ( 0 0 0 1 0 )  1
0 0 0 0 ( 0 0 0 0 0 )  |  ( 0 1 1 0 0 )  ( 0 0 1 0 0 )  1
0 0 1 0 ( 0 0 0 0 0 )  |  ( 0 1 0 0 0 )  ( 0 1 0 0 0 )  1
0 0 0 0 ( 0 0 0 0 0 )  |  ( 0 1 0 0 0 )  ( 1 0 0 0 0 )  1
0 0 1 0 ( 0 0 0 0 0 )  |  ( 0 1 0 0 0 )  ( 1 0 0 0 0 )  1
0 0 0 0 ( 0 0 0 0 0 )  |  ( 1 1 0 0 0 )  ( 1 0 0 0 0 )  1
0 0 1 0 ( 0 0 0 0 0 )  |  ( 0 1 0 0 0 )  ( 0 0 0 0 1 )  1
0 0 0 0 ( 0 0 0 0 0 )  |  ( 0 1 0 0 1 )  ( 0 0 0 0 1 )  1
0 0 0 0 ( 0 0 0 0 0 )  |  ( 0 1 0 0 0 )  ( 0 0 0 1 0 )  1
Check that xLdUse=0 doesn't set Use bits
0 0 0 0 ( 0 0 0 0 0 )  |  ( 0 1 0 0 0 )  ( 0 0 0 1 0 )  1
0 0 0 0 ( 1 1 1 1 1 )  |  ( 0 1 0 0 0 )  ( 0 0 0 1 0 )  1
0 0 0 0 ( 1 1 1 1 1 )  |  ( 0 1 0 0 0 )  ( 0 0 0 1 0 )  1
0 0 0 0 ( 1 1 1 1 1 )  |  ( 0 1 0 0 0 )  ( 0 0 0 1 0 )  1
0 0 0 0 ( 1 1 1 1 1 )  |  ( 0 1 0 0 0 )  ( 0 0 0 1 0 )  1
0 0 0 0 ( 1 1 1 1 1 )  |  ( 0 1 0 0 0 )  ( 0 0 0 1 0 )  1
0 0 0 0 ( 1 1 1 1 1 )  |  ( 0 1 0 0 0 )  ( 0 0 0 1 0 )  1
0 1 0 0 ( 1 1 1 1 1 )  |  ( 0 1 0 0 0 )  ( 0 0 0 1 0 )  1
0 0 0 0 ( 0 0 0 0 0 )  |  ( 1 1 1 1 1 )  ( 0 0 0 1 0 )  1
0 0 0 0 ( 0 0 0 0 0 )  |  ( 1 1 1 0 1 )  ( 0 0 1 0 0 )  1
0 0 0 0 ( 0 0 0 0 0 )  |  ( 1 1 0 0 1 )  ( 0 1 0 0 0 )  1
.