Added numberOfRanks to database.

This commit is contained in:
Lukas Steiner
2019-10-02 16:08:10 +02:00
parent 7868af4b51
commit abb9a37096
8 changed files with 50 additions and 42 deletions

View File

@@ -18,6 +18,7 @@ CREATE TABLE Phases(
CREATE TABLE GeneralInfo(
NumberOfTransactions INTEGER,
TraceEnd INTEGER,
NumberOfRanks INTEGER,
NumberOfBanks INTEGER,
clk INTEGER,
UnitOfTime TEXT,

View File

@@ -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);
}

View File

@@ -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() {}
};

View File

@@ -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());

View File

@@ -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

View File

@@ -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 );
}

View File

@@ -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<int, QString> getLabels() const
{

View File

@@ -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(