Remove/comment out DPRINTFs that were causing a segfault.
The removed ones were unnecessary. The commented out ones could be useful in the future, should this problem get fixed. See flyspray task #243. src/cpu/o3/commit_impl.hh: src/cpu/o3/decode_impl.hh: src/cpu/o3/fetch_impl.hh: src/cpu/o3/iew_impl.hh: src/cpu/o3/inst_queue_impl.hh: src/cpu/o3/lsq_impl.hh: src/cpu/o3/lsq_unit_impl.hh: src/cpu/o3/rename_impl.hh: src/cpu/o3/rob_impl.hh: Remove/comment out DPRINTFs that were causing a segfault. --HG-- extra : convert_revision : b5aeda1c6300dfde5e0a3e9b8c4c5f6fa00b9862
This commit is contained in:
parent
24cc5227af
commit
ec09e5ad6f
9 changed files with 22 additions and 52 deletions
|
@ -96,7 +96,7 @@ DefaultCommit<Impl>::DefaultCommit(Params *params)
|
||||||
if (policy == "aggressive"){
|
if (policy == "aggressive"){
|
||||||
commitPolicy = Aggressive;
|
commitPolicy = Aggressive;
|
||||||
|
|
||||||
DPRINTF(Commit,"Commit Policy set to Aggressive.");
|
// DPRINTF(Commit,"Commit Policy set to Aggressive.");
|
||||||
} else if (policy == "roundrobin"){
|
} else if (policy == "roundrobin"){
|
||||||
commitPolicy = RoundRobin;
|
commitPolicy = RoundRobin;
|
||||||
|
|
||||||
|
@ -105,11 +105,11 @@ DefaultCommit<Impl>::DefaultCommit(Params *params)
|
||||||
priority_list.push_back(tid);
|
priority_list.push_back(tid);
|
||||||
}
|
}
|
||||||
|
|
||||||
DPRINTF(Commit,"Commit Policy set to Round Robin.");
|
// DPRINTF(Commit,"Commit Policy set to Round Robin.");
|
||||||
} else if (policy == "oldestready"){
|
} else if (policy == "oldestready"){
|
||||||
commitPolicy = OldestReady;
|
commitPolicy = OldestReady;
|
||||||
|
|
||||||
DPRINTF(Commit,"Commit Policy set to Oldest Ready.");
|
// DPRINTF(Commit,"Commit Policy set to Oldest Ready.");
|
||||||
} else {
|
} else {
|
||||||
assert(0 && "Invalid SMT Commit Policy. Options Are: {Aggressive,"
|
assert(0 && "Invalid SMT Commit Policy. Options Are: {Aggressive,"
|
||||||
"RoundRobin,OldestReady}");
|
"RoundRobin,OldestReady}");
|
||||||
|
@ -229,8 +229,8 @@ template <class Impl>
|
||||||
void
|
void
|
||||||
DefaultCommit<Impl>::setCPU(O3CPU *cpu_ptr)
|
DefaultCommit<Impl>::setCPU(O3CPU *cpu_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(Commit, "Commit: Setting CPU pointer.\n");
|
|
||||||
cpu = cpu_ptr;
|
cpu = cpu_ptr;
|
||||||
|
DPRINTF(Commit, "Commit: Setting CPU pointer.\n");
|
||||||
|
|
||||||
// Commit must broadcast the number of free entries it has at the start of
|
// Commit must broadcast the number of free entries it has at the start of
|
||||||
// the simulation, so it starts as active.
|
// the simulation, so it starts as active.
|
||||||
|
@ -250,7 +250,6 @@ template <class Impl>
|
||||||
void
|
void
|
||||||
DefaultCommit<Impl>::setTimeBuffer(TimeBuffer<TimeStruct> *tb_ptr)
|
DefaultCommit<Impl>::setTimeBuffer(TimeBuffer<TimeStruct> *tb_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(Commit, "Commit: Setting time buffer pointer.\n");
|
|
||||||
timeBuffer = tb_ptr;
|
timeBuffer = tb_ptr;
|
||||||
|
|
||||||
// Setup wire to send information back to IEW.
|
// Setup wire to send information back to IEW.
|
||||||
|
@ -264,7 +263,6 @@ template <class Impl>
|
||||||
void
|
void
|
||||||
DefaultCommit<Impl>::setFetchQueue(TimeBuffer<FetchStruct> *fq_ptr)
|
DefaultCommit<Impl>::setFetchQueue(TimeBuffer<FetchStruct> *fq_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(Commit, "Commit: Setting fetch queue pointer.\n");
|
|
||||||
fetchQueue = fq_ptr;
|
fetchQueue = fq_ptr;
|
||||||
|
|
||||||
// Setup wire to get instructions from rename (for the ROB).
|
// Setup wire to get instructions from rename (for the ROB).
|
||||||
|
@ -275,7 +273,6 @@ template <class Impl>
|
||||||
void
|
void
|
||||||
DefaultCommit<Impl>::setRenameQueue(TimeBuffer<RenameStruct> *rq_ptr)
|
DefaultCommit<Impl>::setRenameQueue(TimeBuffer<RenameStruct> *rq_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(Commit, "Commit: Setting rename queue pointer.\n");
|
|
||||||
renameQueue = rq_ptr;
|
renameQueue = rq_ptr;
|
||||||
|
|
||||||
// Setup wire to get instructions from rename (for the ROB).
|
// Setup wire to get instructions from rename (for the ROB).
|
||||||
|
@ -286,7 +283,6 @@ template <class Impl>
|
||||||
void
|
void
|
||||||
DefaultCommit<Impl>::setIEWQueue(TimeBuffer<IEWStruct> *iq_ptr)
|
DefaultCommit<Impl>::setIEWQueue(TimeBuffer<IEWStruct> *iq_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(Commit, "Commit: Setting IEW queue pointer.\n");
|
|
||||||
iewQueue = iq_ptr;
|
iewQueue = iq_ptr;
|
||||||
|
|
||||||
// Setup wire to get instructions from IEW.
|
// Setup wire to get instructions from IEW.
|
||||||
|
@ -304,7 +300,6 @@ template<class Impl>
|
||||||
void
|
void
|
||||||
DefaultCommit<Impl>::setActiveThreads(std::list<unsigned> *at_ptr)
|
DefaultCommit<Impl>::setActiveThreads(std::list<unsigned> *at_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(Commit, "Commit: Setting active threads list pointer.\n");
|
|
||||||
activeThreads = at_ptr;
|
activeThreads = at_ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -312,8 +307,6 @@ template <class Impl>
|
||||||
void
|
void
|
||||||
DefaultCommit<Impl>::setRenameMap(RenameMap rm_ptr[])
|
DefaultCommit<Impl>::setRenameMap(RenameMap rm_ptr[])
|
||||||
{
|
{
|
||||||
DPRINTF(Commit, "Setting rename map pointers.\n");
|
|
||||||
|
|
||||||
for (int i=0; i < numThreads; i++) {
|
for (int i=0; i < numThreads; i++) {
|
||||||
renameMap[i] = &rm_ptr[i];
|
renameMap[i] = &rm_ptr[i];
|
||||||
}
|
}
|
||||||
|
@ -323,7 +316,6 @@ template <class Impl>
|
||||||
void
|
void
|
||||||
DefaultCommit<Impl>::setROB(ROB *rob_ptr)
|
DefaultCommit<Impl>::setROB(ROB *rob_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(Commit, "Commit: Setting ROB pointer.\n");
|
|
||||||
rob = rob_ptr;
|
rob = rob_ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -114,15 +114,14 @@ template<class Impl>
|
||||||
void
|
void
|
||||||
DefaultDecode<Impl>::setCPU(O3CPU *cpu_ptr)
|
DefaultDecode<Impl>::setCPU(O3CPU *cpu_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(Decode, "Setting CPU pointer.\n");
|
|
||||||
cpu = cpu_ptr;
|
cpu = cpu_ptr;
|
||||||
|
DPRINTF(Decode, "Setting CPU pointer.\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class Impl>
|
template<class Impl>
|
||||||
void
|
void
|
||||||
DefaultDecode<Impl>::setTimeBuffer(TimeBuffer<TimeStruct> *tb_ptr)
|
DefaultDecode<Impl>::setTimeBuffer(TimeBuffer<TimeStruct> *tb_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(Decode, "Setting time buffer pointer.\n");
|
|
||||||
timeBuffer = tb_ptr;
|
timeBuffer = tb_ptr;
|
||||||
|
|
||||||
// Setup wire to write information back to fetch.
|
// Setup wire to write information back to fetch.
|
||||||
|
@ -138,7 +137,6 @@ template<class Impl>
|
||||||
void
|
void
|
||||||
DefaultDecode<Impl>::setDecodeQueue(TimeBuffer<DecodeStruct> *dq_ptr)
|
DefaultDecode<Impl>::setDecodeQueue(TimeBuffer<DecodeStruct> *dq_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(Decode, "Setting decode queue pointer.\n");
|
|
||||||
decodeQueue = dq_ptr;
|
decodeQueue = dq_ptr;
|
||||||
|
|
||||||
// Setup wire to write information to proper place in decode queue.
|
// Setup wire to write information to proper place in decode queue.
|
||||||
|
@ -149,7 +147,6 @@ template<class Impl>
|
||||||
void
|
void
|
||||||
DefaultDecode<Impl>::setFetchQueue(TimeBuffer<FetchStruct> *fq_ptr)
|
DefaultDecode<Impl>::setFetchQueue(TimeBuffer<FetchStruct> *fq_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(Decode, "Setting fetch queue pointer.\n");
|
|
||||||
fetchQueue = fq_ptr;
|
fetchQueue = fq_ptr;
|
||||||
|
|
||||||
// Setup wire to read information from fetch queue.
|
// Setup wire to read information from fetch queue.
|
||||||
|
@ -160,7 +157,6 @@ template<class Impl>
|
||||||
void
|
void
|
||||||
DefaultDecode<Impl>::setActiveThreads(std::list<unsigned> *at_ptr)
|
DefaultDecode<Impl>::setActiveThreads(std::list<unsigned> *at_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(Decode, "Setting active threads list pointer.\n");
|
|
||||||
activeThreads = at_ptr;
|
activeThreads = at_ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -266,8 +266,8 @@ template<class Impl>
|
||||||
void
|
void
|
||||||
DefaultFetch<Impl>::setCPU(O3CPU *cpu_ptr)
|
DefaultFetch<Impl>::setCPU(O3CPU *cpu_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(Fetch, "Setting the CPU pointer.\n");
|
|
||||||
cpu = cpu_ptr;
|
cpu = cpu_ptr;
|
||||||
|
DPRINTF(Fetch, "Setting the CPU pointer.\n");
|
||||||
|
|
||||||
// Name is finally available, so create the port.
|
// Name is finally available, so create the port.
|
||||||
icachePort = new IcachePort(this);
|
icachePort = new IcachePort(this);
|
||||||
|
@ -292,7 +292,6 @@ template<class Impl>
|
||||||
void
|
void
|
||||||
DefaultFetch<Impl>::setTimeBuffer(TimeBuffer<TimeStruct> *time_buffer)
|
DefaultFetch<Impl>::setTimeBuffer(TimeBuffer<TimeStruct> *time_buffer)
|
||||||
{
|
{
|
||||||
DPRINTF(Fetch, "Setting the time buffer pointer.\n");
|
|
||||||
timeBuffer = time_buffer;
|
timeBuffer = time_buffer;
|
||||||
|
|
||||||
// Create wires to get information from proper places in time buffer.
|
// Create wires to get information from proper places in time buffer.
|
||||||
|
@ -306,7 +305,6 @@ template<class Impl>
|
||||||
void
|
void
|
||||||
DefaultFetch<Impl>::setActiveThreads(std::list<unsigned> *at_ptr)
|
DefaultFetch<Impl>::setActiveThreads(std::list<unsigned> *at_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(Fetch, "Setting active threads list pointer.\n");
|
|
||||||
activeThreads = at_ptr;
|
activeThreads = at_ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -314,7 +312,6 @@ template<class Impl>
|
||||||
void
|
void
|
||||||
DefaultFetch<Impl>::setFetchQueue(TimeBuffer<FetchStruct> *fq_ptr)
|
DefaultFetch<Impl>::setFetchQueue(TimeBuffer<FetchStruct> *fq_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(Fetch, "Setting the fetch queue pointer.\n");
|
|
||||||
fetchQueue = fq_ptr;
|
fetchQueue = fq_ptr;
|
||||||
|
|
||||||
// Create wire to write information to proper place in fetch queue.
|
// Create wire to write information to proper place in fetch queue.
|
||||||
|
|
|
@ -282,8 +282,8 @@ template<class Impl>
|
||||||
void
|
void
|
||||||
DefaultIEW<Impl>::setCPU(O3CPU *cpu_ptr)
|
DefaultIEW<Impl>::setCPU(O3CPU *cpu_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(IEW, "Setting CPU pointer.\n");
|
|
||||||
cpu = cpu_ptr;
|
cpu = cpu_ptr;
|
||||||
|
DPRINTF(IEW, "Setting CPU pointer.\n");
|
||||||
|
|
||||||
instQueue.setCPU(cpu_ptr);
|
instQueue.setCPU(cpu_ptr);
|
||||||
ldstQueue.setCPU(cpu_ptr);
|
ldstQueue.setCPU(cpu_ptr);
|
||||||
|
@ -295,7 +295,6 @@ template<class Impl>
|
||||||
void
|
void
|
||||||
DefaultIEW<Impl>::setTimeBuffer(TimeBuffer<TimeStruct> *tb_ptr)
|
DefaultIEW<Impl>::setTimeBuffer(TimeBuffer<TimeStruct> *tb_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(IEW, "Setting time buffer pointer.\n");
|
|
||||||
timeBuffer = tb_ptr;
|
timeBuffer = tb_ptr;
|
||||||
|
|
||||||
// Setup wire to read information from time buffer, from commit.
|
// Setup wire to read information from time buffer, from commit.
|
||||||
|
@ -314,7 +313,6 @@ template<class Impl>
|
||||||
void
|
void
|
||||||
DefaultIEW<Impl>::setRenameQueue(TimeBuffer<RenameStruct> *rq_ptr)
|
DefaultIEW<Impl>::setRenameQueue(TimeBuffer<RenameStruct> *rq_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(IEW, "Setting rename queue pointer.\n");
|
|
||||||
renameQueue = rq_ptr;
|
renameQueue = rq_ptr;
|
||||||
|
|
||||||
// Setup wire to read information from rename queue.
|
// Setup wire to read information from rename queue.
|
||||||
|
@ -325,7 +323,6 @@ template<class Impl>
|
||||||
void
|
void
|
||||||
DefaultIEW<Impl>::setIEWQueue(TimeBuffer<IEWStruct> *iq_ptr)
|
DefaultIEW<Impl>::setIEWQueue(TimeBuffer<IEWStruct> *iq_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(IEW, "Setting IEW queue pointer.\n");
|
|
||||||
iewQueue = iq_ptr;
|
iewQueue = iq_ptr;
|
||||||
|
|
||||||
// Setup wire to write instructions to commit.
|
// Setup wire to write instructions to commit.
|
||||||
|
@ -336,7 +333,6 @@ template<class Impl>
|
||||||
void
|
void
|
||||||
DefaultIEW<Impl>::setActiveThreads(std::list<unsigned> *at_ptr)
|
DefaultIEW<Impl>::setActiveThreads(std::list<unsigned> *at_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(IEW, "Setting active threads list pointer.\n");
|
|
||||||
activeThreads = at_ptr;
|
activeThreads = at_ptr;
|
||||||
|
|
||||||
ldstQueue.setActiveThreads(at_ptr);
|
ldstQueue.setActiveThreads(at_ptr);
|
||||||
|
@ -347,7 +343,6 @@ template<class Impl>
|
||||||
void
|
void
|
||||||
DefaultIEW<Impl>::setScoreboard(Scoreboard *sb_ptr)
|
DefaultIEW<Impl>::setScoreboard(Scoreboard *sb_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(IEW, "Setting scoreboard pointer.\n");
|
|
||||||
scoreboard = sb_ptr;
|
scoreboard = sb_ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -81,8 +81,6 @@ InstructionQueue<Impl>::InstructionQueue(Params *params)
|
||||||
// Set the number of physical registers as the number of int + float
|
// Set the number of physical registers as the number of int + float
|
||||||
numPhysRegs = numPhysIntRegs + numPhysFloatRegs;
|
numPhysRegs = numPhysIntRegs + numPhysFloatRegs;
|
||||||
|
|
||||||
DPRINTF(IQ, "There are %i physical registers.\n", numPhysRegs);
|
|
||||||
|
|
||||||
//Create an entry for each physical register within the
|
//Create an entry for each physical register within the
|
||||||
//dependency graph.
|
//dependency graph.
|
||||||
dependGraph.resize(numPhysRegs);
|
dependGraph.resize(numPhysRegs);
|
||||||
|
@ -124,8 +122,10 @@ InstructionQueue<Impl>::InstructionQueue(Params *params)
|
||||||
maxEntries[i] = part_amt;
|
maxEntries[i] = part_amt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
DPRINTF(IQ, "IQ sharing policy set to Partitioned:"
|
DPRINTF(IQ, "IQ sharing policy set to Partitioned:"
|
||||||
"%i entries per thread.\n",part_amt);
|
"%i entries per thread.\n",part_amt);
|
||||||
|
*/
|
||||||
|
|
||||||
} else if (policy == "threshold") {
|
} else if (policy == "threshold") {
|
||||||
iqPolicy = Threshold;
|
iqPolicy = Threshold;
|
||||||
|
@ -139,8 +139,10 @@ InstructionQueue<Impl>::InstructionQueue(Params *params)
|
||||||
maxEntries[i] = thresholdIQ;
|
maxEntries[i] = thresholdIQ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
DPRINTF(IQ, "IQ sharing policy set to Threshold:"
|
DPRINTF(IQ, "IQ sharing policy set to Threshold:"
|
||||||
"%i entries per thread.\n",thresholdIQ);
|
"%i entries per thread.\n",thresholdIQ);
|
||||||
|
*/
|
||||||
} else {
|
} else {
|
||||||
assert(0 && "Invalid IQ Sharing Policy.Options Are:{Dynamic,"
|
assert(0 && "Invalid IQ Sharing Policy.Options Are:{Dynamic,"
|
||||||
"Partitioned, Threshold}");
|
"Partitioned, Threshold}");
|
||||||
|
@ -360,7 +362,6 @@ template <class Impl>
|
||||||
void
|
void
|
||||||
InstructionQueue<Impl>::setActiveThreads(std::list<unsigned> *at_ptr)
|
InstructionQueue<Impl>::setActiveThreads(std::list<unsigned> *at_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(IQ, "Setting active threads list pointer.\n");
|
|
||||||
activeThreads = at_ptr;
|
activeThreads = at_ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -368,15 +369,13 @@ template <class Impl>
|
||||||
void
|
void
|
||||||
InstructionQueue<Impl>::setIssueToExecuteQueue(TimeBuffer<IssueStruct> *i2e_ptr)
|
InstructionQueue<Impl>::setIssueToExecuteQueue(TimeBuffer<IssueStruct> *i2e_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(IQ, "Set the issue to execute queue.\n");
|
issueToExecuteQueue = i2e_ptr;
|
||||||
issueToExecuteQueue = i2e_ptr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class Impl>
|
template <class Impl>
|
||||||
void
|
void
|
||||||
InstructionQueue<Impl>::setTimeBuffer(TimeBuffer<TimeStruct> *tb_ptr)
|
InstructionQueue<Impl>::setTimeBuffer(TimeBuffer<TimeStruct> *tb_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(IQ, "Set the time buffer.\n");
|
|
||||||
timeBuffer = tb_ptr;
|
timeBuffer = tb_ptr;
|
||||||
|
|
||||||
fromCommit = timeBuffer->getWire(-commitToIEWDelay);
|
fromCommit = timeBuffer->getWire(-commitToIEWDelay);
|
||||||
|
|
|
@ -112,8 +112,6 @@ LSQ<Impl>::LSQ(Params *params)
|
||||||
SQEntries(params->SQEntries), numThreads(params->numberOfThreads),
|
SQEntries(params->SQEntries), numThreads(params->numberOfThreads),
|
||||||
retryTid(-1)
|
retryTid(-1)
|
||||||
{
|
{
|
||||||
DPRINTF(LSQ, "Creating LSQ object.\n");
|
|
||||||
|
|
||||||
dcachePort.snoopRangeSent = false;
|
dcachePort.snoopRangeSent = false;
|
||||||
|
|
||||||
//**********************************************/
|
//**********************************************/
|
||||||
|
@ -131,20 +129,20 @@ LSQ<Impl>::LSQ(Params *params)
|
||||||
|
|
||||||
maxLQEntries = LQEntries;
|
maxLQEntries = LQEntries;
|
||||||
maxSQEntries = SQEntries;
|
maxSQEntries = SQEntries;
|
||||||
|
/*
|
||||||
DPRINTF(LSQ, "LSQ sharing policy set to Dynamic\n");
|
DPRINTF(LSQ, "LSQ sharing policy set to Dynamic\n");
|
||||||
|
*/
|
||||||
} else if (policy == "partitioned") {
|
} else if (policy == "partitioned") {
|
||||||
lsqPolicy = Partitioned;
|
lsqPolicy = Partitioned;
|
||||||
|
|
||||||
//@todo:make work if part_amt doesnt divide evenly.
|
//@todo:make work if part_amt doesnt divide evenly.
|
||||||
maxLQEntries = LQEntries / numThreads;
|
maxLQEntries = LQEntries / numThreads;
|
||||||
maxSQEntries = SQEntries / numThreads;
|
maxSQEntries = SQEntries / numThreads;
|
||||||
|
/*
|
||||||
DPRINTF(Fetch, "LSQ sharing policy set to Partitioned: "
|
DPRINTF(Fetch, "LSQ sharing policy set to Partitioned: "
|
||||||
"%i entries per LQ | %i entries per SQ",
|
"%i entries per LQ | %i entries per SQ",
|
||||||
maxLQEntries,maxSQEntries);
|
maxLQEntries,maxSQEntries);
|
||||||
|
*/
|
||||||
} else if (policy == "threshold") {
|
} else if (policy == "threshold") {
|
||||||
lsqPolicy = Threshold;
|
lsqPolicy = Threshold;
|
||||||
|
|
||||||
|
@ -156,10 +154,11 @@ LSQ<Impl>::LSQ(Params *params)
|
||||||
//amount of the LSQ
|
//amount of the LSQ
|
||||||
maxLQEntries = params->smtLSQThreshold;
|
maxLQEntries = params->smtLSQThreshold;
|
||||||
maxSQEntries = params->smtLSQThreshold;
|
maxSQEntries = params->smtLSQThreshold;
|
||||||
|
/*
|
||||||
DPRINTF(LSQ, "LSQ sharing policy set to Threshold: "
|
DPRINTF(LSQ, "LSQ sharing policy set to Threshold: "
|
||||||
"%i entries per LQ | %i entries per SQ",
|
"%i entries per LQ | %i entries per SQ",
|
||||||
maxLQEntries,maxSQEntries);
|
maxLQEntries,maxSQEntries);
|
||||||
|
*/
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
assert(0 && "Invalid LSQ Sharing Policy.Options Are:{Dynamic,"
|
assert(0 && "Invalid LSQ Sharing Policy.Options Are:{Dynamic,"
|
||||||
|
|
|
@ -112,7 +112,7 @@ void
|
||||||
LSQUnit<Impl>::init(Params *params, LSQ *lsq_ptr, unsigned maxLQEntries,
|
LSQUnit<Impl>::init(Params *params, LSQ *lsq_ptr, unsigned maxLQEntries,
|
||||||
unsigned maxSQEntries, unsigned id)
|
unsigned maxSQEntries, unsigned id)
|
||||||
{
|
{
|
||||||
DPRINTF(LSQUnit, "Creating LSQUnit%i object.\n",id);
|
// DPRINTF(LSQUnit, "Creating LSQUnit%i object.\n",id);
|
||||||
|
|
||||||
switchedOut = false;
|
switchedOut = false;
|
||||||
|
|
||||||
|
|
|
@ -168,15 +168,14 @@ template <class Impl>
|
||||||
void
|
void
|
||||||
DefaultRename<Impl>::setCPU(O3CPU *cpu_ptr)
|
DefaultRename<Impl>::setCPU(O3CPU *cpu_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(Rename, "Setting CPU pointer.\n");
|
|
||||||
cpu = cpu_ptr;
|
cpu = cpu_ptr;
|
||||||
|
DPRINTF(Rename, "Setting CPU pointer.\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class Impl>
|
template <class Impl>
|
||||||
void
|
void
|
||||||
DefaultRename<Impl>::setTimeBuffer(TimeBuffer<TimeStruct> *tb_ptr)
|
DefaultRename<Impl>::setTimeBuffer(TimeBuffer<TimeStruct> *tb_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(Rename, "Setting time buffer pointer.\n");
|
|
||||||
timeBuffer = tb_ptr;
|
timeBuffer = tb_ptr;
|
||||||
|
|
||||||
// Setup wire to read information from time buffer, from IEW stage.
|
// Setup wire to read information from time buffer, from IEW stage.
|
||||||
|
@ -193,7 +192,6 @@ template <class Impl>
|
||||||
void
|
void
|
||||||
DefaultRename<Impl>::setRenameQueue(TimeBuffer<RenameStruct> *rq_ptr)
|
DefaultRename<Impl>::setRenameQueue(TimeBuffer<RenameStruct> *rq_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(Rename, "Setting rename queue pointer.\n");
|
|
||||||
renameQueue = rq_ptr;
|
renameQueue = rq_ptr;
|
||||||
|
|
||||||
// Setup wire to write information to future stages.
|
// Setup wire to write information to future stages.
|
||||||
|
@ -204,7 +202,6 @@ template <class Impl>
|
||||||
void
|
void
|
||||||
DefaultRename<Impl>::setDecodeQueue(TimeBuffer<DecodeStruct> *dq_ptr)
|
DefaultRename<Impl>::setDecodeQueue(TimeBuffer<DecodeStruct> *dq_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(Rename, "Setting decode queue pointer.\n");
|
|
||||||
decodeQueue = dq_ptr;
|
decodeQueue = dq_ptr;
|
||||||
|
|
||||||
// Setup wire to get information from decode.
|
// Setup wire to get information from decode.
|
||||||
|
@ -228,7 +225,6 @@ template<class Impl>
|
||||||
void
|
void
|
||||||
DefaultRename<Impl>::setActiveThreads(std::list<unsigned> *at_ptr)
|
DefaultRename<Impl>::setActiveThreads(std::list<unsigned> *at_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(Rename, "Setting active threads list pointer.\n");
|
|
||||||
activeThreads = at_ptr;
|
activeThreads = at_ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -237,8 +233,6 @@ template <class Impl>
|
||||||
void
|
void
|
||||||
DefaultRename<Impl>::setRenameMap(RenameMap rm_ptr[])
|
DefaultRename<Impl>::setRenameMap(RenameMap rm_ptr[])
|
||||||
{
|
{
|
||||||
DPRINTF(Rename, "Setting rename map pointers.\n");
|
|
||||||
|
|
||||||
for (int i=0; i<numThreads; i++) {
|
for (int i=0; i<numThreads; i++) {
|
||||||
renameMap[i] = &rm_ptr[i];
|
renameMap[i] = &rm_ptr[i];
|
||||||
}
|
}
|
||||||
|
@ -248,7 +242,6 @@ template <class Impl>
|
||||||
void
|
void
|
||||||
DefaultRename<Impl>::setFreeList(FreeList *fl_ptr)
|
DefaultRename<Impl>::setFreeList(FreeList *fl_ptr)
|
||||||
{
|
{
|
||||||
DPRINTF(Rename, "Setting free list pointer.\n");
|
|
||||||
freeList = fl_ptr;
|
freeList = fl_ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -256,7 +249,6 @@ template<class Impl>
|
||||||
void
|
void
|
||||||
DefaultRename<Impl>::setScoreboard(Scoreboard *_scoreboard)
|
DefaultRename<Impl>::setScoreboard(Scoreboard *_scoreboard)
|
||||||
{
|
{
|
||||||
DPRINTF(Rename, "Setting scoreboard pointer.\n");
|
|
||||||
scoreboard = _scoreboard;
|
scoreboard = _scoreboard;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,7 @@ ROB<Impl>::ROB(unsigned _numEntries, unsigned _squashWidth,
|
||||||
|
|
||||||
} else if (policy == "partitioned") {
|
} else if (policy == "partitioned") {
|
||||||
robPolicy = Partitioned;
|
robPolicy = Partitioned;
|
||||||
DPRINTF(Fetch, "ROB sharing policy set to Partitioned\n");
|
// DPRINTF(Fetch, "ROB sharing policy set to Partitioned\n");
|
||||||
|
|
||||||
//@todo:make work if part_amt doesnt divide evenly.
|
//@todo:make work if part_amt doesnt divide evenly.
|
||||||
int part_amt = numEntries / numThreads;
|
int part_amt = numEntries / numThreads;
|
||||||
|
@ -78,7 +78,7 @@ ROB<Impl>::ROB(unsigned _numEntries, unsigned _squashWidth,
|
||||||
|
|
||||||
} else if (policy == "threshold") {
|
} else if (policy == "threshold") {
|
||||||
robPolicy = Threshold;
|
robPolicy = Threshold;
|
||||||
DPRINTF(Fetch, "ROB sharing policy set to Threshold\n");
|
// DPRINTF(Fetch, "ROB sharing policy set to Threshold\n");
|
||||||
|
|
||||||
int threshold = _smtROBThreshold;;
|
int threshold = _smtROBThreshold;;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue