You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// Creates per-core stream tables // for upto 64 processor coresstaticconstuint32_t MaxContexts = 64;
// Number of entries in a stream tableuint32_t tableSize;
// Use the master-id to train the streams constbool useMasterId;
// Determines the number of prefetch // reuquests to be issued at a timeuint32_t degree;
// Determines the prefetch distanceuint32_t distance;
2. 一些定义
Stream Direction
// Direction of stream for each // stream entry in the stream tableenum StreamDirection{
// For example - A, A+1, A+2
ASCENDING = 1,
/ For example - A, A-1, A-2
DESCENDING = -1,
INVALID = 0
};
Stream Status
// Status of a stream entry in the stream table.enum StreamStatus{
INV = 0,
// Stream training is not over yet. Once trained // will move to MONITOR status
TRAINING = 1,
// Monitor and Request: Stream entry ready // for issuing prefetch requests
MONITOR = 2
};
Stream Table Entry
classStreamTableEntry {
classStreamTableEntry {
public:int LRU_index;
// Address that initiated the stream training
Addr allocAddr;
// First address of a stream
Addr startAddr;
// Last address of a stream
Addr endAddr;
// Direction of trained stream (Ascending or Descending)
StreamDirection trainedDirection;
// Status of the stream entry
StreamStatus status;
// Stores the last two stream directions of an entry
StreamDirection trendDirection[2];
};