Added ranks to tdb files and TraceAnalyzer.
This commit is contained in:
@@ -58,8 +58,9 @@ CREATE TABLE Transactions(
|
||||
Burstlength INTEGER,
|
||||
TThread INTEGER,
|
||||
TChannel INTEGER,
|
||||
TBank INTEGER,
|
||||
TRank INTEGER,
|
||||
TBankgroup INTEGER,
|
||||
TBank INTEGER,
|
||||
TRow INTEGER,
|
||||
TColumn INTEGER,
|
||||
DataStrobeBegin INTEGER,
|
||||
|
||||
@@ -272,7 +272,7 @@ void TlmRecorder::setUpTransactionTerminatingPhases()
|
||||
void TlmRecorder::prepareSqlStatements()
|
||||
{
|
||||
insertTransactionString =
|
||||
"INSERT INTO Transactions VALUES (:id,:rangeID,:address,:burstlength,:thread,:channel,:bank,:bankgroup,: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 =
|
||||
@@ -359,20 +359,22 @@ void TlmRecorder::insertTransactionInDB(Transaction &recordingData)
|
||||
sqlite3_bind_int(insertTransactionStatement, 6,
|
||||
recordingData.dramExtension.getChannel().ID());
|
||||
sqlite3_bind_int(insertTransactionStatement, 7,
|
||||
recordingData.dramExtension.getBank().ID());
|
||||
recordingData.dramExtension.getRank().ID());
|
||||
sqlite3_bind_int(insertTransactionStatement, 8,
|
||||
recordingData.dramExtension.getBankGroup().ID());
|
||||
sqlite3_bind_int(insertTransactionStatement, 9,
|
||||
recordingData.dramExtension.getRow().ID());
|
||||
recordingData.dramExtension.getBank().ID());
|
||||
sqlite3_bind_int(insertTransactionStatement, 10,
|
||||
recordingData.dramExtension.getRow().ID());
|
||||
sqlite3_bind_int(insertTransactionStatement, 11,
|
||||
recordingData.dramExtension.getColumn().ID());
|
||||
sqlite3_bind_int64(insertTransactionStatement, 11,
|
||||
recordingData.timeOnDataStrobe.start.value());
|
||||
sqlite3_bind_int64(insertTransactionStatement, 12,
|
||||
recordingData.timeOnDataStrobe.end.value());
|
||||
recordingData.timeOnDataStrobe.start.value());
|
||||
sqlite3_bind_int64(insertTransactionStatement, 13,
|
||||
recordingData.timeOnDataStrobe.end.value());
|
||||
sqlite3_bind_int64(insertTransactionStatement, 14,
|
||||
recordingData.timeOfGeneration.value());
|
||||
sqlite3_bind_text(insertTransactionStatement, 14,
|
||||
sqlite3_bind_text(insertTransactionStatement, 15,
|
||||
recordingData.cmd.c_str(), recordingData.cmd.length(), NULL);
|
||||
|
||||
executeSqlStatement(insertTransactionStatement);
|
||||
|
||||
@@ -39,11 +39,11 @@
|
||||
|
||||
using namespace std;
|
||||
Transaction::Transaction(ID id, unsigned int address, unsigned int burstlength,
|
||||
unsigned int thread, unsigned int channel, unsigned int bank,
|
||||
unsigned int bankgroup, unsigned int row, unsigned int column, Timespan span,
|
||||
Timespan spanOnDataStrobe)
|
||||
: address(address), burstlength(burstlength), thread(thread), channel(channel),
|
||||
bank(bank), bankgroup(bankgroup), row(row), column(column), span(span),
|
||||
unsigned int thread, unsigned int channel, unsigned int rank,
|
||||
unsigned int bankgroup, unsigned int bank, unsigned int row, unsigned int column,
|
||||
Timespan span, Timespan spanOnDataStrobe)
|
||||
: address(address), burstlength(burstlength), thread(thread), channel(channel), rank(rank),
|
||||
bankgroup(bankgroup), bank(bank), row(row), column(column), span(span),
|
||||
spanOnDataStrobe(spanOnDataStrobe), id(id) {}
|
||||
|
||||
void Transaction::addPhase(shared_ptr<Phase> phase)
|
||||
|
||||
@@ -48,8 +48,8 @@ typedef unsigned int ID;
|
||||
class Transaction
|
||||
{
|
||||
private:
|
||||
unsigned int address, burstlength, thread, channel, bank, bankgroup, row,
|
||||
column;
|
||||
unsigned int address, burstlength, thread, channel, rank,
|
||||
bankgroup, bank, row, column;
|
||||
Timespan span;
|
||||
Timespan spanOnDataStrobe;
|
||||
ID id;
|
||||
@@ -57,9 +57,9 @@ private:
|
||||
|
||||
public:
|
||||
Transaction(ID id, unsigned int address, unsigned int burstlength,
|
||||
unsigned int thread, unsigned int channel, unsigned int bank,
|
||||
unsigned int bankgroup, unsigned int row, unsigned int column, Timespan span,
|
||||
Timespan spanOnDataStrobe);
|
||||
unsigned int thread, unsigned int channel, unsigned int rank,
|
||||
unsigned int bankgroup, unsigned int bank, unsigned int row, unsigned int column,
|
||||
Timespan span, Timespan spanOnDataStrobe);
|
||||
|
||||
void draw(QPainter *painter, const QwtScaleMap &xMap, const QwtScaleMap &yMap,
|
||||
const QRectF &canvasRect, bool highlight,
|
||||
@@ -85,14 +85,18 @@ public:
|
||||
{
|
||||
return channel;
|
||||
}
|
||||
unsigned int Bank() const
|
||||
unsigned int Rank() const
|
||||
{
|
||||
return bank;
|
||||
return rank;
|
||||
}
|
||||
unsigned int BankGroup() const
|
||||
{
|
||||
return bankgroup;
|
||||
}
|
||||
unsigned int Bank() const
|
||||
{
|
||||
return bank;
|
||||
}
|
||||
unsigned int Row() const
|
||||
{
|
||||
return row;
|
||||
|
||||
@@ -46,7 +46,7 @@ struct TransactionQueryTexts {
|
||||
TransactionQueryTexts()
|
||||
{
|
||||
queryHead =
|
||||
"SELECT Transactions.ID AS TransactionID, Ranges.begin, Ranges.end,DataStrobeBegin,DataStrobeEnd, Address,Burstlength, TThread, TChannel, TBank,TBankgroup, TRow, TColumn,Phases.ID AS PhaseID, PhaseName, PhaseBegin, PhaseEnd "
|
||||
"SELECT Transactions.ID AS TransactionID, Ranges.begin, Ranges.end,DataStrobeBegin,DataStrobeEnd, Address,Burstlength, TThread, TChannel, TRank, TBankgroup, TBank, TRow, TColumn,Phases.ID AS PhaseID, PhaseName, PhaseBegin, PhaseEnd "
|
||||
" FROM Transactions INNER JOIN Phases ON Phases.Transact = Transactions.ID INNER JOIN Ranges ON Transactions.Range = Ranges.ID ";
|
||||
|
||||
selectTransactionsByTimespan = queryHead +
|
||||
|
||||
@@ -346,22 +346,23 @@ vector<shared_ptr<Transaction>> TraceDB::parseTransactionsFromQuery(
|
||||
currentID = id;
|
||||
Timespan span(query.value(1).toLongLong(), query.value(2).toLongLong());
|
||||
Timespan spanOnStrobe(query.value(3).toLongLong(), query.value(4).toLongLong());
|
||||
unsigned int address = query.value(5).toInt();
|
||||
unsigned int address = query.value(5).toInt();
|
||||
unsigned int burstlength = query.value(6).toInt();
|
||||
unsigned int thread = query.value(7).toInt();
|
||||
unsigned int channel = query.value(8).toInt();
|
||||
unsigned int bank = query.value(9).toInt();
|
||||
unsigned int bankgroup = query.value(10).toInt();
|
||||
unsigned int row = query.value(11).toInt();
|
||||
unsigned int column = query.value(12).toInt();
|
||||
result.push_back(shared_ptr<Transaction>(new Transaction(id, address,
|
||||
burstlength, thread, channel, bank, bankgroup, row, column, span,
|
||||
spanOnStrobe)));
|
||||
unsigned int rank = query.value(9).toInt();
|
||||
unsigned int bankgroup = query.value(10).toInt();
|
||||
unsigned int bank = query.value(11).toInt();
|
||||
unsigned int row = query.value(12).toInt();
|
||||
unsigned int column = query.value(13).toInt();
|
||||
result.push_back(shared_ptr<Transaction>(new Transaction(id, address, burstlength,
|
||||
thread, channel, rank, bankgroup, bank, row, column,
|
||||
span, spanOnStrobe)));
|
||||
}
|
||||
|
||||
unsigned int phaseID = query.value(13).toInt();
|
||||
QString phaseName = query.value(14).toString();
|
||||
Timespan span(query.value(15).toLongLong(), query.value(16).toLongLong());
|
||||
unsigned int phaseID = query.value(14).toInt();
|
||||
QString phaseName = query.value(15).toString();
|
||||
Timespan span(query.value(16).toLongLong(), query.value(17).toLongLong());
|
||||
result.at(result.size() - 1)->addPhase(PhaseFactory::CreatePhase(phaseID,
|
||||
phaseName, span, result.at(result.size() - 1), *this));
|
||||
}
|
||||
|
||||
@@ -101,8 +101,9 @@ TransactionTreeWidget::TransactionTreeItem::TransactionTreeItem(
|
||||
this->addChild(new QTreeWidgetItem( {"Lenght", prettyFormatTime(transaction->Span().timeCovered())}));
|
||||
|
||||
this->addChild(new QTreeWidgetItem( {"Channel", QString::number(transaction->Channel())}));
|
||||
this->addChild(new QTreeWidgetItem( {"Bank", QString::number(transaction->Bank())} ));
|
||||
this->addChild(new QTreeWidgetItem( {"Rank", QString::number(transaction->Rank())} ));
|
||||
this->addChild(new QTreeWidgetItem( {"Bankgroup", QString::number(transaction->BankGroup())} ));
|
||||
this->addChild(new QTreeWidgetItem( {"Bank", QString::number(transaction->Bank())} ));
|
||||
this->addChild(new QTreeWidgetItem( {"Row", QString::number(transaction->Row())} ));
|
||||
this->addChild(new QTreeWidgetItem( {"Column", QString::number(transaction->Column())} ));
|
||||
this->addChild(new QTreeWidgetItem( {"Address", QString("0x") + QString::number(transaction->Address(), 16)} ));
|
||||
|
||||
Reference in New Issue
Block a user