.desc("Number of Unique Registers Needed Per Context Switch")
.prereq(uniqueRegsPerSwitch);
- regFileReads
- .name(name() + ".regFileReads")
- .desc("Number of Reads from Register File");
+ intRegFileReads
+ .name(name() + ".intRegFileReads")
+ .desc("Number of Reads from Int. Register File");
+
+ intRegFileWrites
+ .name(name() + ".intRegFileWrites")
+ .desc("Number of Writes to Int. Register File");
+
+ intRegFileAccs
+ .name(name() + ".intRegFileAccesses")
+ .desc("Total Accesses (Read+Write) to the Int. Register File");
+ intRegFileAccs = intRegFileReads + intRegFileWrites;
+
+ floatRegFileReads
+ .name(name() + ".floatRegFileReads")
+ .desc("Number of Reads from FP Register File");
+
+ floatRegFileWrites
+ .name(name() + ".floatRegFileWrites")
+ .desc("Number of Writes to FP Register File");
+
+ floatRegFileAccs
+ .name(name() + ".floatRegFileAccesses")
+ .desc("Total Accesses (Read+Write) to the FP Register File");
+ floatRegFileAccs = floatRegFileReads + floatRegFileWrites;
regForwards
.name(name() + ".regForwards")
.desc("Number of Registers Read Through Forwarding Logic");
-
- regFileWrites
- .name(name() + ".regFileWrites")
- .desc("Number of Writes to Register File");
-
- regFileAccs
- .name(name() + ".regFileAccesses")
- .desc("Number of Total Accesses (Read+Write) to the Register File");
- regFileAccs = regFileReads + regFileWrites;
Resource::regStats();
}
inst->setIntSrc(ud_idx,
cpu->readIntReg(flat_idx,
inst->readTid()));
+ intRegFileReads++;
}
break;
inst->setFloatSrc(ud_idx,
cpu->readFloatReg(flat_idx,
inst->readTid()));
+ floatRegFileReads++;
}
break;
panic("Invalid Register Type: %i", reg_type);
}
- regFileReads++;
ud_req->done();
} else {
// Look for forwarding opportunities
cpu->setIntReg(flat_idx,
inst->readIntResult(ud_idx),
inst->readTid());
+ intRegFileWrites++;
}
break;
inst->seqNum, inst->instName());
}
+ floatRegFileWrites++;
}
break;
panic("Invalid Register Type: %i", reg_type);
}
- regFileWrites++;
ud_req->done();
} else {
DPRINTF(InOrderUseDef, "[tid:%i]: [sn:%i]: Dest. register idx: %i is "
};
protected:
- /** Register File Reads */
- Stats::Scalar regFileReads;
+ /** Int. Register File Reads */
+ Stats::Scalar intRegFileReads;
- /** Register File Writes */
- Stats::Scalar regFileWrites;
+ /** Int. Register File Writes */
+ Stats::Scalar intRegFileWrites;
+
+ /** Int. Register File Total Accesses (Read+Write) */
+ Stats::Formula intRegFileAccs;
+
+ /** Float Register File Reads */
+ Stats::Scalar floatRegFileReads;
+
+ /** Float Register File Writes */
+ Stats::Scalar floatRegFileWrites;
+
+ /** Float Register File Total Accesses (Read+Write) */
+ Stats::Formula floatRegFileAccs;
/** Source Register Forwarding */
Stats::Scalar regForwards;
-
- /** Register File Total Accesses (Read+Write) */
- Stats::Formula regFileAccs;
};
#endif //__CPU_INORDER_USE_DEF_UNIT_HH__