48a49,55
> /**
> * Implements a store set predictor for determining if memory
> * instructions are dependent upon each other. See paper "Memory
> * Dependence Prediction using Store Sets" by Chrysos and Emer. SSID
> * stands for Store Set ID, SSIT stands for Store Set ID Table, and
> * LFST is Last Fetched Store Table.
> */
54a62
> /** Default constructor. init() must be called prior to use. */
56a65
> /** Creates store set predictor with given table sizes. */
58a68
> /** Default destructor. */
60a71
> /** Initializes the store set predictor with the given table sizes. */
62a74,75
> /** Records a memory ordering violation between the younger load
> * and the older store. */
64a78,80
> /** Inserts a load into the store set predictor. This does nothing but
> * is included in case other predictors require a similar function.
> */
66a83,84
> /** Inserts a store into the store set predictor. Updates the
> * LFST if the store has a valid SSID. */
69a88,91
> /** Checks if the instruction with the given PC is dependent upon
> * any store. @return Returns the sequence number of the store
> * instruction this PC is dependent upon. Returns 0 if none.
> */
71a94
> /** Records this PC/sequence number as issued. */
73a97
> /** Squashes for a specific thread until the given sequence number. */
75a100
> /** Resets all tables. */
77a103,105
> /** Debug function to dump the contents of the store list. */
> void dump();
>
78a107
> /** Calculates the index into the SSIT based on the PC. */
81a111
> /** Calculates a Store Set ID based on the PC. */
84a115
> /** The Store Set ID Table. */
86a118
> /** Bit vector to tell if the SSIT has a valid entry. */
88a121
> /** Last Fetched Store Table. */
90a124
> /** Bit vector to tell if the LFST has a valid entry. */
92a127,129
> /** Map of stores that have been inserted into the store set, but
> * not yet issued or squashed.
> */
96a134
> /** Store Set ID Table size, in entries. */
98a137
> /** Last Fetched Store Table size, in entries. */
100a140
> /** Mask to obtain the index. */