From 57f6881ae1d978c45b4d0b4d0e5927a7a89622fe Mon Sep 17 00:00:00 2001 From: Lukas Steiner Date: Thu, 27 Aug 2020 15:33:17 +0200 Subject: [PATCH] Add new commands and command lengths. --- .../resources/scripts/createTraceDB.sql | 28 ++-- DRAMSys/library/src/common/TlmRecorder.cpp | 36 ++--- DRAMSys/library/src/controller/Command.cpp | 134 +++++++++--------- DRAMSys/library/src/controller/Command.h | 10 +- DRAMSys/tests/DDR4/scripts/createTraceDB.sql | 28 ++-- DRAMSys/tests/HBM2/scripts/createTraceDB.sql | 28 ++-- .../ddr3_multirank/scripts/createTraceDB.sql | 28 ++-- .../tests/lpddr4/scripts/createTraceDB.sql | 28 ++-- .../businessObjects/commandlengths.h | 32 +++-- .../businessObjects/phases/phase.h | 84 +++++++---- .../businessObjects/phases/phasefactory.cpp | 3 + DRAMSys/traceAnalyzer/data/tracedb.cpp | 37 ++--- 12 files changed, 263 insertions(+), 213 deletions(-) diff --git a/DRAMSys/library/resources/scripts/createTraceDB.sql b/DRAMSys/library/resources/scripts/createTraceDB.sql index a8fa60a8..f902d02f 100644 --- a/DRAMSys/library/resources/scripts/createTraceDB.sql +++ b/DRAMSys/library/resources/scripts/createTraceDB.sql @@ -33,20 +33,22 @@ CREATE TABLE GeneralInfo( ); CREATE TABLE CommandLengths( - ACT INTEGER, - PRE INTEGER, - PREA INTEGER, - RD INTEGER, - RDA INTEGER, - WR INTEGER, - WRA INTEGER, - REFA INTEGER, - REFB INTEGER, + NOP INTEGER, + RD INTEGER, + WR INTEGER, + RDA INTEGER, + WRA INTEGER, + ACT INTEGER, + PRE INTEGER, + REFB INTEGER, + PRESB INTEGER, REFSB INTEGER, - PDEA INTEGER, - PDXA INTEGER, - PDEP INTEGER, - PDXP INTEGER, + PREA INTEGER, + REFA INTEGER, + PDEA INTEGER, + PDXA INTEGER, + PDEP INTEGER, + PDXP INTEGER, SREFEN INTEGER, SREFEX INTEGER ); diff --git a/DRAMSys/library/src/common/TlmRecorder.cpp b/DRAMSys/library/src/common/TlmRecorder.cpp index 24701cb5..9d1bf9b9 100644 --- a/DRAMSys/library/src/common/TlmRecorder.cpp +++ b/DRAMSys/library/src/common/TlmRecorder.cpp @@ -296,7 +296,7 @@ void TlmRecorder::prepareSqlStatements() insertCommandLengthsString = "INSERT INTO CommandLengths VALUES" - "(:ACT, :PRE, :PREA, :RD, :RDA, :WR, :WRA, :REFA, :REFB, :REFSB, :PDEA, :PDXA, :PDEP, :PDXP, :SREFEN, :SREFEX)"; + "(:NOP, :RD, :WR, :RDA, :WRA, :ACT, :PRE, :REFB, :PRESB, :REFSB, :PREA, :REFA, :PDEA, :PDXA, :PDEP, :PDXP, :SREFEN, :SREFEX)"; insertDebugMessageString = "INSERT INTO DebugMessages (Time,Message) Values (:time,:message)"; @@ -362,22 +362,24 @@ void TlmRecorder::insertCommandLengths() { MemSpec *memSpec = Configuration::getInstance().memSpec; - sqlite3_bind_int(insertCommandLengthsStatement, 1, memSpec->getCommandLength(Command::ACT) / memSpec->tCK); - sqlite3_bind_int(insertCommandLengthsStatement, 2, memSpec->getCommandLength(Command::PRE) / memSpec->tCK); - sqlite3_bind_int(insertCommandLengthsStatement, 3, memSpec->getCommandLength(Command::PREA) / memSpec->tCK); - sqlite3_bind_int(insertCommandLengthsStatement, 4, memSpec->getCommandLength(Command::RD) / memSpec->tCK); - sqlite3_bind_int(insertCommandLengthsStatement, 5, memSpec->getCommandLength(Command::RDA) / memSpec->tCK); - sqlite3_bind_int(insertCommandLengthsStatement, 6, memSpec->getCommandLength(Command::WR) / memSpec->tCK); - sqlite3_bind_int(insertCommandLengthsStatement, 7, memSpec->getCommandLength(Command::WRA) / memSpec->tCK); - sqlite3_bind_int(insertCommandLengthsStatement, 8, memSpec->getCommandLength(Command::REFA) / memSpec->tCK); - sqlite3_bind_int(insertCommandLengthsStatement, 9, memSpec->getCommandLength(Command::REFB) / memSpec->tCK); - sqlite3_bind_int(insertCommandLengthsStatement, 10, 1); - sqlite3_bind_int(insertCommandLengthsStatement, 11, memSpec->getCommandLength(Command::PDEA) / memSpec->tCK); - sqlite3_bind_int(insertCommandLengthsStatement, 12, memSpec->getCommandLength(Command::PDXA) / memSpec->tCK); - sqlite3_bind_int(insertCommandLengthsStatement, 13, memSpec->getCommandLength(Command::PDEP) / memSpec->tCK); - sqlite3_bind_int(insertCommandLengthsStatement, 14, memSpec->getCommandLength(Command::PDXP) / memSpec->tCK); - sqlite3_bind_int(insertCommandLengthsStatement, 15, memSpec->getCommandLength(Command::SREFEN) / memSpec->tCK); - sqlite3_bind_int(insertCommandLengthsStatement, 16, memSpec->getCommandLength(Command::SREFEX) / memSpec->tCK); + sqlite3_bind_int(insertCommandLengthsStatement, 1, memSpec->getCommandLength(Command::NOP) / memSpec->tCK); + sqlite3_bind_int(insertCommandLengthsStatement, 2, memSpec->getCommandLength(Command::RD) / memSpec->tCK); + sqlite3_bind_int(insertCommandLengthsStatement, 3, memSpec->getCommandLength(Command::WR) / memSpec->tCK); + sqlite3_bind_int(insertCommandLengthsStatement, 4, memSpec->getCommandLength(Command::RDA) / memSpec->tCK); + sqlite3_bind_int(insertCommandLengthsStatement, 5, memSpec->getCommandLength(Command::WRA) / memSpec->tCK); + sqlite3_bind_int(insertCommandLengthsStatement, 6, memSpec->getCommandLength(Command::PRE) / memSpec->tCK); + sqlite3_bind_int(insertCommandLengthsStatement, 7, memSpec->getCommandLength(Command::ACT) / memSpec->tCK); + sqlite3_bind_int(insertCommandLengthsStatement, 8, memSpec->getCommandLength(Command::REFB) / memSpec->tCK); + sqlite3_bind_int(insertCommandLengthsStatement, 9, memSpec->getCommandLength(Command::PRESB) / memSpec->tCK); + sqlite3_bind_int(insertCommandLengthsStatement, 10, memSpec->getCommandLength(Command::REFSB) / memSpec->tCK); + sqlite3_bind_int(insertCommandLengthsStatement, 11, memSpec->getCommandLength(Command::PREA) / memSpec->tCK); + sqlite3_bind_int(insertCommandLengthsStatement, 12, memSpec->getCommandLength(Command::REFA) / memSpec->tCK); + sqlite3_bind_int(insertCommandLengthsStatement, 13, memSpec->getCommandLength(Command::PDEA) / memSpec->tCK); + sqlite3_bind_int(insertCommandLengthsStatement, 14, memSpec->getCommandLength(Command::PDXA) / memSpec->tCK); + sqlite3_bind_int(insertCommandLengthsStatement, 15, memSpec->getCommandLength(Command::PDEP) / memSpec->tCK); + sqlite3_bind_int(insertCommandLengthsStatement, 16, memSpec->getCommandLength(Command::PDXP) / memSpec->tCK); + sqlite3_bind_int(insertCommandLengthsStatement, 17, memSpec->getCommandLength(Command::SREFEN) / memSpec->tCK); + sqlite3_bind_int(insertCommandLengthsStatement, 18, memSpec->getCommandLength(Command::SREFEX) / memSpec->tCK); executeSqlStatement(insertCommandLengthsStatement); } diff --git a/DRAMSys/library/src/controller/Command.cpp b/DRAMSys/library/src/controller/Command.cpp index 976f2d28..a5f50101 100644 --- a/DRAMSys/library/src/controller/Command.cpp +++ b/DRAMSys/library/src/controller/Command.cpp @@ -46,23 +46,23 @@ std::string commandToString(Command command) assert(command >= Command::NOP && command <= Command::SREFEX); static std::array stringOfCommand = {"NOP", - "RD", - "WR", - "RDA", - "WRA", - "PRE", - "ACT", - "REFB", - "PRESB", - "REFSB", - "PREA", - "REFA", - "PDEA", - "PDXA", - "PDEP", - "PDXP", - "SREFEN", - "SREFEX"}; + "RD", + "WR", + "RDA", + "WRA", + "ACT", + "PRE", + "REFB", + "PRESB", + "REFSB", + "PREA", + "REFA", + "PDEA", + "PDXA", + "PDEP", + "PDXP", + "SREFEN", + "SREFEX"}; return stringOfCommand[command]; } @@ -76,23 +76,23 @@ tlm_phase commandToPhase(Command command) assert(command >= Command::NOP && command <= Command::SREFEX); static std::array phaseOfCommand = {UNINITIALIZED_PHASE, - BEGIN_RD, - BEGIN_WR, - BEGIN_RDA, - BEGIN_WRA, - BEGIN_PRE, - BEGIN_ACT, - BEGIN_REFB, - BEGIN_PRESB, - BEGIN_REFSB, - BEGIN_PREA, - BEGIN_REFA, - BEGIN_PDNA, - END_PDNA, - BEGIN_PDNP, - END_PDNP, - BEGIN_SREF, - END_SREF}; + BEGIN_RD, + BEGIN_WR, + BEGIN_RDA, + BEGIN_WRA, + BEGIN_ACT, + BEGIN_PRE, + BEGIN_REFB, + BEGIN_PRESB, + BEGIN_REFSB, + BEGIN_PREA, + BEGIN_REFA, + BEGIN_PDNA, + END_PDNA, + BEGIN_PDNP, + END_PDNP, + BEGIN_SREF, + END_SREF}; return phaseOfCommand[command]; } @@ -101,22 +101,22 @@ Command phaseToCommand(tlm_phase phase) assert(phase >= BEGIN_RD && phase <= END_SREF); static std::array commandOfPhase = {Command::RD, - Command::WR, - Command::RDA, - Command::WRA, - Command::PRE, - Command::ACT, - Command::REFB, - Command::PRESB, - Command::REFSB, - Command::PREA, - Command::REFA, - Command::PDEA, - Command::PDXA, - Command::PDEP, - Command::PDXP, - Command::SREFEN, - Command::SREFEX}; + Command::WR, + Command::RDA, + Command::WRA, + Command::ACT, + Command::PRE, + Command::REFB, + Command::PRESB, + Command::REFSB, + Command::PREA, + Command::REFA, + Command::PDEA, + Command::PDXA, + Command::PDEP, + Command::PDXP, + Command::SREFEN, + Command::SREFEX}; return commandOfPhase[phase - BEGIN_RD]; } @@ -126,22 +126,22 @@ MemCommand::cmds phaseToDRAMPowerCommand(tlm_phase phase) assert(phase >= BEGIN_RD && phase <= END_SREF); static std::array phaseOfCommand = {MemCommand::RD, - MemCommand::WR, - MemCommand::RDA, - MemCommand::WRA, - MemCommand::PRE, - MemCommand::ACT, - MemCommand::REFB, - MemCommand::NOP, - MemCommand::NOP, - MemCommand::PREA, - MemCommand::REF, - MemCommand::PDN_S_ACT, - MemCommand::PUP_ACT, - MemCommand::PDN_S_PRE, - MemCommand::PUP_PRE, - MemCommand::SREN, - MemCommand::SREX}; + MemCommand::WR, + MemCommand::RDA, + MemCommand::WRA, + MemCommand::ACT, + MemCommand::PRE, + MemCommand::REFB, + MemCommand::NOP, + MemCommand::NOP, + MemCommand::PREA, + MemCommand::REF, + MemCommand::PDN_S_ACT, + MemCommand::PUP_ACT, + MemCommand::PDN_S_PRE, + MemCommand::PUP_PRE, + MemCommand::SREN, + MemCommand::SREX}; return phaseOfCommand[phase - BEGIN_RD]; } @@ -183,5 +183,5 @@ bool isCasCommand(Command command) bool isRasCommand(Command command) { assert(command >= Command::NOP && command <= Command::SREFEX); - return (command >= Command::PRE); + return (command >= Command::ACT); } diff --git a/DRAMSys/library/src/controller/Command.h b/DRAMSys/library/src/controller/Command.h index a773fbb1..6c9fdee7 100644 --- a/DRAMSys/library/src/controller/Command.h +++ b/DRAMSys/library/src/controller/Command.h @@ -47,8 +47,8 @@ DECLARE_EXTENDED_PHASE(BEGIN_RD); // 5 DECLARE_EXTENDED_PHASE(BEGIN_WR); // 6 DECLARE_EXTENDED_PHASE(BEGIN_RDA); // 7 DECLARE_EXTENDED_PHASE(BEGIN_WRA); // 8 -DECLARE_EXTENDED_PHASE(BEGIN_PRE); // 9 -DECLARE_EXTENDED_PHASE(BEGIN_ACT); // 10 +DECLARE_EXTENDED_PHASE(BEGIN_ACT); // 9 +DECLARE_EXTENDED_PHASE(BEGIN_PRE); // 10 DECLARE_EXTENDED_PHASE(BEGIN_REFB); // 11 DECLARE_EXTENDED_PHASE(BEGIN_PRESB); // 12 DECLARE_EXTENDED_PHASE(BEGIN_REFSB); // 13 @@ -65,8 +65,8 @@ DECLARE_EXTENDED_PHASE(END_RD); // 22 DECLARE_EXTENDED_PHASE(END_WR); // 23 DECLARE_EXTENDED_PHASE(END_RDA); // 24 DECLARE_EXTENDED_PHASE(END_WRA); // 25 -DECLARE_EXTENDED_PHASE(END_PRE); // 26 -DECLARE_EXTENDED_PHASE(END_ACT); // 27 +DECLARE_EXTENDED_PHASE(END_ACT); // 26 +DECLARE_EXTENDED_PHASE(END_PRE); // 27 DECLARE_EXTENDED_PHASE(END_REFB); // 28 DECLARE_EXTENDED_PHASE(END_PRESB); // 29 DECLARE_EXTENDED_PHASE(END_REFSB); // 30 @@ -80,8 +80,8 @@ enum Command WR, RDA, WRA, - PRE, ACT, + PRE, REFB, PRESB, REFSB, diff --git a/DRAMSys/tests/DDR4/scripts/createTraceDB.sql b/DRAMSys/tests/DDR4/scripts/createTraceDB.sql index a8fa60a8..f902d02f 100644 --- a/DRAMSys/tests/DDR4/scripts/createTraceDB.sql +++ b/DRAMSys/tests/DDR4/scripts/createTraceDB.sql @@ -33,20 +33,22 @@ CREATE TABLE GeneralInfo( ); CREATE TABLE CommandLengths( - ACT INTEGER, - PRE INTEGER, - PREA INTEGER, - RD INTEGER, - RDA INTEGER, - WR INTEGER, - WRA INTEGER, - REFA INTEGER, - REFB INTEGER, + NOP INTEGER, + RD INTEGER, + WR INTEGER, + RDA INTEGER, + WRA INTEGER, + ACT INTEGER, + PRE INTEGER, + REFB INTEGER, + PRESB INTEGER, REFSB INTEGER, - PDEA INTEGER, - PDXA INTEGER, - PDEP INTEGER, - PDXP INTEGER, + PREA INTEGER, + REFA INTEGER, + PDEA INTEGER, + PDXA INTEGER, + PDEP INTEGER, + PDXP INTEGER, SREFEN INTEGER, SREFEX INTEGER ); diff --git a/DRAMSys/tests/HBM2/scripts/createTraceDB.sql b/DRAMSys/tests/HBM2/scripts/createTraceDB.sql index a8fa60a8..f902d02f 100644 --- a/DRAMSys/tests/HBM2/scripts/createTraceDB.sql +++ b/DRAMSys/tests/HBM2/scripts/createTraceDB.sql @@ -33,20 +33,22 @@ CREATE TABLE GeneralInfo( ); CREATE TABLE CommandLengths( - ACT INTEGER, - PRE INTEGER, - PREA INTEGER, - RD INTEGER, - RDA INTEGER, - WR INTEGER, - WRA INTEGER, - REFA INTEGER, - REFB INTEGER, + NOP INTEGER, + RD INTEGER, + WR INTEGER, + RDA INTEGER, + WRA INTEGER, + ACT INTEGER, + PRE INTEGER, + REFB INTEGER, + PRESB INTEGER, REFSB INTEGER, - PDEA INTEGER, - PDXA INTEGER, - PDEP INTEGER, - PDXP INTEGER, + PREA INTEGER, + REFA INTEGER, + PDEA INTEGER, + PDXA INTEGER, + PDEP INTEGER, + PDXP INTEGER, SREFEN INTEGER, SREFEX INTEGER ); diff --git a/DRAMSys/tests/ddr3_multirank/scripts/createTraceDB.sql b/DRAMSys/tests/ddr3_multirank/scripts/createTraceDB.sql index a8fa60a8..f902d02f 100644 --- a/DRAMSys/tests/ddr3_multirank/scripts/createTraceDB.sql +++ b/DRAMSys/tests/ddr3_multirank/scripts/createTraceDB.sql @@ -33,20 +33,22 @@ CREATE TABLE GeneralInfo( ); CREATE TABLE CommandLengths( - ACT INTEGER, - PRE INTEGER, - PREA INTEGER, - RD INTEGER, - RDA INTEGER, - WR INTEGER, - WRA INTEGER, - REFA INTEGER, - REFB INTEGER, + NOP INTEGER, + RD INTEGER, + WR INTEGER, + RDA INTEGER, + WRA INTEGER, + ACT INTEGER, + PRE INTEGER, + REFB INTEGER, + PRESB INTEGER, REFSB INTEGER, - PDEA INTEGER, - PDXA INTEGER, - PDEP INTEGER, - PDXP INTEGER, + PREA INTEGER, + REFA INTEGER, + PDEA INTEGER, + PDXA INTEGER, + PDEP INTEGER, + PDXP INTEGER, SREFEN INTEGER, SREFEX INTEGER ); diff --git a/DRAMSys/tests/lpddr4/scripts/createTraceDB.sql b/DRAMSys/tests/lpddr4/scripts/createTraceDB.sql index a8fa60a8..f902d02f 100644 --- a/DRAMSys/tests/lpddr4/scripts/createTraceDB.sql +++ b/DRAMSys/tests/lpddr4/scripts/createTraceDB.sql @@ -33,20 +33,22 @@ CREATE TABLE GeneralInfo( ); CREATE TABLE CommandLengths( - ACT INTEGER, - PRE INTEGER, - PREA INTEGER, - RD INTEGER, - RDA INTEGER, - WR INTEGER, - WRA INTEGER, - REFA INTEGER, - REFB INTEGER, + NOP INTEGER, + RD INTEGER, + WR INTEGER, + RDA INTEGER, + WRA INTEGER, + ACT INTEGER, + PRE INTEGER, + REFB INTEGER, + PRESB INTEGER, REFSB INTEGER, - PDEA INTEGER, - PDXA INTEGER, - PDEP INTEGER, - PDXP INTEGER, + PREA INTEGER, + REFA INTEGER, + PDEA INTEGER, + PDXA INTEGER, + PDEP INTEGER, + PDXP INTEGER, SREFEN INTEGER, SREFEX INTEGER ); diff --git a/DRAMSys/traceAnalyzer/businessObjects/commandlengths.h b/DRAMSys/traceAnalyzer/businessObjects/commandlengths.h index 07b1b2a7..5db48e37 100644 --- a/DRAMSys/traceAnalyzer/businessObjects/commandlengths.h +++ b/DRAMSys/traceAnalyzer/businessObjects/commandlengths.h @@ -38,16 +38,18 @@ struct CommandLengths { + unsigned NOP; + unsigned RD; + unsigned WR; + unsigned RDA; + unsigned WRA; unsigned ACT; unsigned PRE; - unsigned PREA; - unsigned RD; - unsigned RDA; - unsigned WR; - unsigned WRA; - unsigned REFA; unsigned REFB; + unsigned PRESB; unsigned REFSB; + unsigned PREA; + unsigned REFA; unsigned PDEA; unsigned PDXA; unsigned PDEP; @@ -55,14 +57,16 @@ struct CommandLengths unsigned SREFEN; unsigned SREFEX; - CommandLengths(unsigned ACT, unsigned PRE, unsigned PREA, - unsigned RD, unsigned RDA, unsigned WR, unsigned WRA, - unsigned REFA, unsigned REFB, unsigned REFSB, - unsigned PDEA, unsigned PDXA, unsigned PDEP, unsigned PDXP, - unsigned SREFEN, unsigned SREFEX) : - ACT(ACT), PRE(PRE), PREA(PREA), RD(RD), RDA(RDA), WR(WR), WRA(WRA), - REFA(REFA), REFB(REFB), REFSB(REFSB), PDEA(PDEA), PDXA(PDXA), - PDEP(PDEP), PDXP(PDXP), SREFEN(SREFEN), SREFEX(SREFEX) {} + CommandLengths(unsigned NOP, unsigned RD, unsigned WR, + unsigned RDA, unsigned WRA, unsigned ACT, + unsigned PRE, unsigned REFB, unsigned PRESB, + unsigned REFSB, unsigned PREA, unsigned REFA, + unsigned PDEA, unsigned PDXA, unsigned PDEP, + unsigned PDXP, unsigned SREFEN, unsigned SREFEX) : + NOP(NOP), RD(RD), WR(WR), RDA(RDA), WRA(WRA), ACT(ACT), PRE(PRE), + REFB(REFB), PRESB(PRESB), REFSB(REFSB), PREA(PREA), REFA(REFA), + PDEA(PDEA), PDXA(PDXA), PDEP(PDEP), PDXP(PDXP), + SREFEN(SREFEN), SREFEX(SREFEX) {} CommandLengths() {} }; diff --git a/DRAMSys/traceAnalyzer/businessObjects/phases/phase.h b/DRAMSys/traceAnalyzer/businessObjects/phases/phase.h index 0b3274bb..3192aed1 100644 --- a/DRAMSys/traceAnalyzer/businessObjects/phases/phase.h +++ b/DRAMSys/traceAnalyzer/businessObjects/phases/phase.h @@ -174,6 +174,62 @@ protected: } }; +class PRESB : public Phase +{ +public: + using Phase::Phase; +protected: + virtual QString Name() const override + { + return "PRESB"; + } + virtual std::vector getTimesOnCommandBus() const + { + return {span.Begin()}; + } + virtual QColor getColor(const TraceDrawingProperties &drawingProperties) const + override + { + Q_UNUSED(drawingProperties) return getPhaseColor(); + } + virtual QColor getPhaseColor() const override + { + return ColorGenerator::getColor(1); + } + virtual Granularity getGranularity() const override + { + return Granularity::Groupwise; + } +}; + +class PREA : public Phase +{ +public: + using Phase::Phase; +protected: + virtual QString Name() const override + { + return "PREA"; + } + virtual std::vector getTimesOnCommandBus() const + { + return {span.Begin()}; + } + virtual QColor getColor(const TraceDrawingProperties &drawingProperties) const + override + { + Q_UNUSED(drawingProperties) return getPhaseColor(); + } + virtual QColor getPhaseColor() const override + { + return ColorGenerator::getColor(10); + } + virtual Granularity getGranularity() const override + { + return Granularity::Rankwise; + } +}; + class ACTB : public Phase { public: @@ -331,34 +387,6 @@ protected: } }; -class PREA : public Phase -{ -public: - using Phase::Phase; -protected: - virtual QString Name() const override - { - return "PREA"; - } - virtual std::vector getTimesOnCommandBus() const - { - return {span.Begin()}; - } - virtual QColor getColor(const TraceDrawingProperties &drawingProperties) const - override - { - Q_UNUSED(drawingProperties) return getPhaseColor(); - } - virtual QColor getPhaseColor() const override - { - return ColorGenerator::getColor(10); - } - virtual Granularity getGranularity() const override - { - return Granularity::Rankwise; - } -}; - class PDNAB : public Phase { public: diff --git a/DRAMSys/traceAnalyzer/businessObjects/phases/phasefactory.cpp b/DRAMSys/traceAnalyzer/businessObjects/phases/phasefactory.cpp index 94a6c453..8ea561e5 100644 --- a/DRAMSys/traceAnalyzer/businessObjects/phases/phasefactory.cpp +++ b/DRAMSys/traceAnalyzer/businessObjects/phases/phasefactory.cpp @@ -76,6 +76,9 @@ shared_ptr PhaseFactory::CreatePhase(ID id, const QString &dbPhaseName, else if (dbPhaseName == "REFB") return shared_ptr(new REFB(id, span, trans, {Timespan(span.Begin(), span.Begin() + clk * cl.REFB)}, std::shared_ptr())); + else if (dbPhaseName == "PRESB") + return shared_ptr(new PRESB(id, span, trans, + {Timespan(span.Begin(), span.Begin() + clk * cl.PRESB)}, std::shared_ptr())); else if (dbPhaseName == "REFSB") return shared_ptr(new REFSB(id, span, trans, {Timespan(span.Begin(), span.Begin() + clk * cl.REFSB)}, std::shared_ptr())); diff --git a/DRAMSys/traceAnalyzer/data/tracedb.cpp b/DRAMSys/traceAnalyzer/data/tracedb.cpp index 4471ce35..e44f49ef 100644 --- a/DRAMSys/traceAnalyzer/data/tracedb.cpp +++ b/DRAMSys/traceAnalyzer/data/tracedb.cpp @@ -285,25 +285,28 @@ CommandLengths TraceDB::getCommandLengthsFromDB() if (query.next()) { - unsigned ACT = query.value(0).toInt(); - unsigned PRE = query.value(1).toInt(); - unsigned PREA = query.value(2).toInt(); - unsigned RD = query.value(3).toInt(); - unsigned RDA = query.value(4).toInt(); - unsigned WR = query.value(5).toInt(); - unsigned WRA = query.value(6).toInt(); - unsigned REFA = query.value(7).toInt(); - unsigned REFB = query.value(8).toInt(); + unsigned NOP = query.value(0).toInt(); + unsigned RD = query.value(1).toInt(); + unsigned WR = query.value(2).toInt(); + unsigned RDA = query.value(3).toInt(); + unsigned WRA = query.value(4).toInt(); + unsigned ACT = query.value(5).toInt(); + unsigned PRE = query.value(6).toInt(); + unsigned REFB = query.value(7).toInt(); + unsigned PRESB = query.value(8).toInt(); unsigned REFSB = query.value(9).toInt(); - unsigned PDEA = query.value(10).toInt(); - unsigned PDXA = query.value(11).toInt(); - unsigned PDEP = query.value(12).toInt(); - unsigned PDXP = query.value(13).toInt(); - unsigned SREFEN = query.value(14).toInt(); - unsigned SREFEX = query.value(15).toInt(); + unsigned PREA = query.value(10).toInt(); + unsigned REFA = query.value(11).toInt(); + unsigned PDEA = query.value(12).toInt(); + unsigned PDXA = query.value(13).toInt(); + unsigned PDEP = query.value(14).toInt(); + unsigned PDXP = query.value(15).toInt(); + unsigned SREFEN = query.value(16).toInt(); + unsigned SREFEX = query.value(17).toInt(); - return CommandLengths(ACT, PRE, PREA, RD, RDA, WR, WRA, REFA, REFB, REFSB, - PDEA, PDXA, PDEP, PDXP, SREFEN, SREFEX); + return CommandLengths(NOP, RD, WR, RDA, WRA, ACT, PRE, REFB, + PRESB, REFSB, PREA, REFA, PDEA, PDXA, + PDEP, PDXP, SREFEN, SREFEX); } else {