From abb9a37096596c83bc71d2ba0ea9b22eec45d864 Mon Sep 17 00:00:00 2001 From: Lukas Steiner Date: Wed, 2 Oct 2019 16:08:10 +0200 Subject: [PATCH] Added numberOfRanks to database. --- .../resources/scripts/createTraceDB.sql | 1 + DRAMSys/library/src/common/TlmRecorder.cpp | 32 +++++++++++-------- .../businessObjects/generalinfo.h | 15 ++++----- DRAMSys/traceAnalyzer/data/tracedb.cpp | 24 +++++++------- DRAMSys/traceAnalyzer/mainwindow.cpp | 2 +- .../presentation/pornotracescroller.cpp | 4 +-- .../presentation/tracedrawingproperties.h | 9 +++--- .../traceAnalyzer/presentation/traceplot.cpp | 5 +-- 8 files changed, 50 insertions(+), 42 deletions(-) diff --git a/DRAMSys/library/resources/scripts/createTraceDB.sql b/DRAMSys/library/resources/scripts/createTraceDB.sql index e9c71b76..7a127fac 100644 --- a/DRAMSys/library/resources/scripts/createTraceDB.sql +++ b/DRAMSys/library/resources/scripts/createTraceDB.sql @@ -18,6 +18,7 @@ CREATE TABLE Phases( CREATE TABLE GeneralInfo( NumberOfTransactions INTEGER, TraceEnd INTEGER, + NumberOfRanks INTEGER, NumberOfBanks INTEGER, clk INTEGER, UnitOfTime TEXT, diff --git a/DRAMSys/library/src/common/TlmRecorder.cpp b/DRAMSys/library/src/common/TlmRecorder.cpp index 8944286e..4b4aba97 100644 --- a/DRAMSys/library/src/common/TlmRecorder.cpp +++ b/DRAMSys/library/src/common/TlmRecorder.cpp @@ -273,7 +273,8 @@ void TlmRecorder::setUpTransactionTerminatingPhases() void TlmRecorder::prepareSqlStatements() { insertTransactionString = - "INSERT INTO Transactions VALUES (:id,:rangeID,:address,:burstlength,:thread,:channel,:rank,:bankgroup,:bank,:row,:column,:dataStrobeBegin,:dataStrobeEnd, :timeOfGeneration,:command)"; + "INSERT INTO Transactions VALUES (:id,:rangeID,:address,:burstlength,:thread,:channel,:rank," + ":bankgroup,:bank,:row,:column,:dataStrobeBegin,:dataStrobeEnd, :timeOfGeneration,:command)"; insertRangeString = "INSERT INTO Ranges VALUES (:id,:begin,:end)"; updateRangeString = "UPDATE Ranges SET End = :end WHERE ID = :id"; updateDataStrobeString = @@ -284,8 +285,9 @@ void TlmRecorder::prepareSqlStatements() updatePhaseString = "UPDATE Phases SET PhaseEnd = :end WHERE Transact = :trans AND PhaseName = :name"; insertGeneralInfoString = - "INSERT INTO GeneralInfo (NumberOfTransactions,TraceEnd,NumberOfBanks,clk,UnitOfTime,MCconfig,Memspec,Traces, WindowSize, FlexibleRefresh, MaxRefBurst, ControllerThread) VALUES" - "(:numberOfTransactions,:end,:numberOfBanks,:clk,:unitOfTime,:mcconfig,:memspec,:traces,:windowSize, :flexibleRefresh, :maxRefBurst, :controllerThread)"; + "INSERT INTO GeneralInfo VALUES" + "(:numberOfTransactions,:end,:numberOfRanks,:numberOfBanks,:clk,:unitOfTime,:mcconfig,:memspec," + ":traces,:windowSize, :flexibleRefresh, :maxRefBurst, :controllerThread)"; insertCommandLengthsString = "INSERT INTO CommandLengths VALUES" "(:ACT, :PRE, :PREA, :RD, :RDA, :WR, :WRA, :REFA, :REFB, :PDEA, :PDXA, :PDEP, :PDXP, :SREFEN, :SREFEX)"; @@ -324,33 +326,35 @@ void TlmRecorder::insertGeneralInfo() sqlite3_bind_int64(insertGeneralInfoStatement, 2, simulationTimeCoveredByRecording.value()); sqlite3_bind_int(insertGeneralInfoStatement, 3, - Configuration::getInstance().memSpec->NumberOfBanks); + Configuration::getInstance().memSpec->NumberOfRanks); sqlite3_bind_int(insertGeneralInfoStatement, 4, + Configuration::getInstance().memSpec->NumberOfBanks); + sqlite3_bind_int(insertGeneralInfoStatement, 5, Configuration::getInstance().memSpec->clk.value()); - sqlite3_bind_text(insertGeneralInfoStatement, 5, "PS", 2, NULL); - sqlite3_bind_text(insertGeneralInfoStatement, 6, mcconfig.c_str(), + sqlite3_bind_text(insertGeneralInfoStatement, 6, "PS", 2, NULL); + sqlite3_bind_text(insertGeneralInfoStatement, 7, mcconfig.c_str(), mcconfig.length(), NULL); - sqlite3_bind_text(insertGeneralInfoStatement, 7, memspec.c_str(), + sqlite3_bind_text(insertGeneralInfoStatement, 8, memspec.c_str(), memspec.length(), NULL); - sqlite3_bind_text(insertGeneralInfoStatement, 8, traces.c_str(), + sqlite3_bind_text(insertGeneralInfoStatement, 9, traces.c_str(), traces.length(), NULL); if (!Configuration::getInstance().EnableWindowing) - sqlite3_bind_int64(insertGeneralInfoStatement, 9, 0); + sqlite3_bind_int64(insertGeneralInfoStatement, 10, 0); else - sqlite3_bind_int64(insertGeneralInfoStatement, 9, + sqlite3_bind_int64(insertGeneralInfoStatement, 10, (Configuration::getInstance().memSpec->clk * Configuration::getInstance().WindowSize).value()); if (Configuration::getInstance().ControllerCoreRefEnablePostpone || Configuration::getInstance().ControllerCoreRefEnablePullIn) { - sqlite3_bind_int(insertGeneralInfoStatement, 10, 1); - sqlite3_bind_int(insertGeneralInfoStatement, 11, + sqlite3_bind_int(insertGeneralInfoStatement, 11, 1); + sqlite3_bind_int(insertGeneralInfoStatement, 12, std::max(Configuration::getInstance().ControllerCoreRefMaxPulledIn, Configuration::getInstance().ControllerCoreRefMaxPostponed)); } else { - sqlite3_bind_int(insertGeneralInfoStatement, 10, 0); sqlite3_bind_int(insertGeneralInfoStatement, 11, 0); + sqlite3_bind_int(insertGeneralInfoStatement, 12, 0); } - sqlite3_bind_int(insertGeneralInfoStatement, 12, UINT_MAX); + sqlite3_bind_int(insertGeneralInfoStatement, 13, UINT_MAX); executeSqlStatement(insertGeneralInfoStatement); } diff --git a/DRAMSys/traceAnalyzer/businessObjects/generalinfo.h b/DRAMSys/traceAnalyzer/businessObjects/generalinfo.h index 883ad0a1..a2858cdb 100644 --- a/DRAMSys/traceAnalyzer/businessObjects/generalinfo.h +++ b/DRAMSys/traceAnalyzer/businessObjects/generalinfo.h @@ -44,6 +44,7 @@ struct GeneralInfo { unsigned int numberOfTransactions; unsigned int numberOfPhases; Timespan span; + unsigned int numberOfRanks; unsigned int numberOfBanks; QString description; QString unitOfTime; @@ -53,15 +54,13 @@ struct GeneralInfo { public: GeneralInfo(unsigned int numberOfTransactions, unsigned int numberOfPhases, - Timespan span, unsigned int numberOfBanks, const QString &description, - QString unitOfTime, unsigned int clkPeriod, unsigned int windowSize, - unsigned int controllerThread) : + Timespan span, unsigned int numberOfRanks, unsigned int numberOfBanks, + const QString &description, QString unitOfTime, unsigned int clkPeriod, + unsigned int windowSize, unsigned int controllerThread) : numberOfTransactions(numberOfTransactions) , numberOfPhases(numberOfPhases), - span(span), numberOfBanks(numberOfBanks), description(description), - unitOfTime(unitOfTime), clkPeriod(clkPeriod), windowSize(windowSize), - controllerThread(controllerThread) - { - } + span(span), numberOfRanks(numberOfRanks), numberOfBanks(numberOfBanks), + description(description), unitOfTime(unitOfTime), clkPeriod(clkPeriod), + windowSize(windowSize), controllerThread(controllerThread) {} GeneralInfo() {} }; diff --git a/DRAMSys/traceAnalyzer/data/tracedb.cpp b/DRAMSys/traceAnalyzer/data/tracedb.cpp index 2e99fc07..c3ec15dd 100644 --- a/DRAMSys/traceAnalyzer/data/tracedb.cpp +++ b/DRAMSys/traceAnalyzer/data/tracedb.cpp @@ -238,22 +238,24 @@ ID TraceDB::getTransactionIDFromPhaseID(ID phaseID) GeneralInfo TraceDB::getGeneralInfoFromDB() { QSqlQuery query(database); - query.prepare("SELECT NumberOfTransactions,TraceEnd,NumberOfBanks,Clk,UnitOfTime,Traces,Memspec,MCconfig, WindowSize, ControllerThread FROM GeneralInfo"); + query.prepare("SELECT NumberOfTransactions, TraceEnd, NumberOfRanks, NumberOfBanks, Clk, " + "UnitOfTime, Traces, Memspec, MCconfig, WindowSize, ControllerThread FROM GeneralInfo"); executeQuery(query); if (query.next()) { unsigned int numberOfTransactions = query.value(0).toInt(); traceTime traceEnd = query.value(1).toLongLong(); - unsigned int numberOfBanks = query.value(2).toInt(); - unsigned int clkPeriod = query.value(3).toInt(); - QString unitOfTime = query.value(4).toString(); + unsigned int numberOfRanks = query.value(2).toInt(); + unsigned int numberOfBanks = query.value(3).toInt(); + unsigned int clkPeriod = query.value(4).toInt(); + QString unitOfTime = query.value(5).toString(); unsigned int numberOfPhases = getNumberOfPhases(); - QString traces = "Traces: " + query.value(5).toString(); - QString memspec = "Memspec: " + query.value(6).toString(); - QString mcconfig = "MCconfig: " + query.value(7).toString(); - unsigned int windowSize = query.value(8).toInt(); - unsigned int controllerThread = query.value(9).toUInt(); + QString traces = "Traces: " + query.value(6).toString(); + QString memspec = "Memspec: " + query.value(7).toString(); + QString mcconfig = "MCconfig: " + query.value(8).toString(); + unsigned int windowSize = query.value(9).toInt(); + unsigned int controllerThread = query.value(10).toUInt(); QString description = (traces + "\n"); description += mcconfig + "\n"; @@ -266,8 +268,8 @@ GeneralInfo TraceDB::getGeneralInfoFromDB() description += "Window size:" + QString::number(windowSize) + "\n"; return GeneralInfo(numberOfTransactions, numberOfPhases, Timespan(0, traceEnd), - numberOfBanks, description, unitOfTime, clkPeriod, windowSize, - controllerThread); + numberOfRanks, numberOfBanks, description, unitOfTime, + clkPeriod, windowSize, controllerThread); } else { throw sqlException("Tracefile corrupted. No general info table", this->pathToDB.toStdString()); diff --git a/DRAMSys/traceAnalyzer/mainwindow.cpp b/DRAMSys/traceAnalyzer/mainwindow.cpp index 7155466f..9bdc2565 100644 --- a/DRAMSys/traceAnalyzer/mainwindow.cpp +++ b/DRAMSys/traceAnalyzer/mainwindow.cpp @@ -61,7 +61,7 @@ MainWindow::MainWindow(QWidget *parent) : ui->qwtPlot->setAxisScale(QwtPlot::xBottom, traceNavigator->GeneralTraceInfo().TraceSpan().Begin(), traceNavigator->GeneralTraceInfo().TraceSpan().End()); - unsigned int banksize = traceNavigator -> GeneralTraceInfo().NumberOfBanks(); + unsigned int banksize = traceNavigator->GeneralTraceInfo().NumberOfBanks(); ui->qwtPlot->setAxisScale(QwtPlot::yLeft, 0.0, banksize + 3, 1.0); PhaseCollectionDrawingProperties *drawingProperties = new diff --git a/DRAMSys/traceAnalyzer/presentation/pornotracescroller.cpp b/DRAMSys/traceAnalyzer/presentation/pornotracescroller.cpp index 9865cd8a..d440f488 100644 --- a/DRAMSys/traceAnalyzer/presentation/pornotracescroller.cpp +++ b/DRAMSys/traceAnalyzer/presentation/pornotracescroller.cpp @@ -86,7 +86,7 @@ void PornoTraceScroller::setUpTracePlotItem() void PornoTraceScroller::setUpDrawingProperties() { - unsigned int numberOfBanks = navigator -> GeneralTraceInfo().numberOfBanks; + unsigned int numberOfBanks = navigator->GeneralTraceInfo().numberOfBanks; drawingProperties.numberOfBanks = numberOfBanks; drawingProperties.yValResponse = numberOfBanks; drawingProperties.yValRequest = numberOfBanks + 1; @@ -97,7 +97,7 @@ void PornoTraceScroller::setUpDrawingProperties() void PornoTraceScroller::setUpAxis() { - setAxisScale(yLeft, -1, navigator -> GeneralTraceInfo().numberOfBanks + 2, 1.0); + setAxisScale(yLeft, -1, navigator->GeneralTraceInfo().numberOfBanks + 2, 1.0); axisScaleDraw(yLeft)->enableComponent(QwtAbstractScaleDraw::Labels, false ); axisScaleDraw(yLeft)->enableComponent(QwtAbstractScaleDraw::Ticks, false ); } diff --git a/DRAMSys/traceAnalyzer/presentation/tracedrawingproperties.h b/DRAMSys/traceAnalyzer/presentation/tracedrawingproperties.h index a2db4a48..ae6150ad 100644 --- a/DRAMSys/traceAnalyzer/presentation/tracedrawingproperties.h +++ b/DRAMSys/traceAnalyzer/presentation/tracedrawingproperties.h @@ -53,6 +53,7 @@ struct TraceDrawingProperties { int yValRequest; int yValCommandBus; int yValDataBus; + unsigned int numberOfRanks; unsigned int numberOfBanks; TraceDrawingProperties() : drawText(true), drawBorder(true), @@ -60,13 +61,13 @@ struct TraceDrawingProperties { TraceDrawingProperties(bool drawText, bool drawBorder, ColorGrouping colorGrouping) : drawText(drawText), drawBorder(drawBorder), colorGrouping(colorGrouping) {} - TraceDrawingProperties(bool drawText, bool drawBorder, - ColorGrouping colorGrouping, int yValResponse, int yValRequest, - int yValCommandBus, int yValDataBus, unsigned int numberOfBanks) : + TraceDrawingProperties(bool drawText, bool drawBorder, ColorGrouping colorGrouping, + int yValResponse, int yValRequest, int yValCommandBus, int yValDataBus, + unsigned int numberOfRanks, unsigned int numberOfBanks) : drawText(drawText), drawBorder(drawBorder), colorGrouping(colorGrouping), yValResponse(yValResponse), yValRequest(yValRequest), yValCommandBus(yValCommandBus), yValDataBus(yValDataBus), - numberOfBanks(numberOfBanks) {} + numberOfRanks(numberOfRanks), numberOfBanks(numberOfBanks) {} QHash getLabels() const { diff --git a/DRAMSys/traceAnalyzer/presentation/traceplot.cpp b/DRAMSys/traceAnalyzer/presentation/traceplot.cpp index 871b3e23..341ecc5c 100644 --- a/DRAMSys/traceAnalyzer/presentation/traceplot.cpp +++ b/DRAMSys/traceAnalyzer/presentation/traceplot.cpp @@ -205,7 +205,8 @@ void TracePlot::connectNavigatorQ_SIGNALS() void TracePlot::setUpDrawingProperties() { - unsigned int numberOfBanks = navigator -> GeneralTraceInfo().numberOfBanks; + drawingProperties.numberOfRanks = navigator->GeneralTraceInfo().numberOfRanks; + unsigned int numberOfBanks = navigator->GeneralTraceInfo().numberOfBanks; drawingProperties.numberOfBanks = numberOfBanks; drawingProperties.yValResponse = numberOfBanks; drawingProperties.yValRequest = numberOfBanks + 1; @@ -252,7 +253,7 @@ void TracePlot::setUpZoom() void TracePlot::setUpAxis() { - int numberOfBanks = navigator -> GeneralTraceInfo().numberOfBanks; + int numberOfBanks = navigator->GeneralTraceInfo().numberOfBanks; setAxisScale(yLeft, -5, numberOfBanks + 2, 1.0); setAxisScaleDraw(yLeft, new CustomLabelScaleDraw(