diff options
author | Karel Kočí <cynerd@email.cz> | 2018-05-23 20:23:10 +0200 |
---|---|---|
committer | Karel Kočí <cynerd@email.cz> | 2018-05-23 20:23:10 +0200 |
commit | ddde26b916c99078421992100849101455756415 (patch) | |
tree | 25a8dee1fb6ae3a78d5a46e2aabd5aa4f8bb7fb3 /qtmips_gui | |
parent | f1fc0fc1ad628d19382fe2a026a767af6f6ba12f (diff) | |
download | qtmips-ddde26b916c99078421992100849101455756415.tar.gz qtmips-ddde26b916c99078421992100849101455756415.tar.bz2 qtmips-ddde26b916c99078421992100849101455756415.zip |
Add cache statistics
Diffstat (limited to 'qtmips_gui')
-rw-r--r-- | qtmips_gui/NewDialog.ui | 20 | ||||
-rw-r--r-- | qtmips_gui/cachedock.cpp | 16 | ||||
-rw-r--r-- | qtmips_gui/cachedock.h | 3 |
3 files changed, 35 insertions, 4 deletions
diff --git a/qtmips_gui/NewDialog.ui b/qtmips_gui/NewDialog.ui index 135ac83..6e6a3ec 100644 --- a/qtmips_gui/NewDialog.ui +++ b/qtmips_gui/NewDialog.ui @@ -29,7 +29,7 @@ <item> <widget class="QTabWidget" name="tabWidget"> <property name="currentIndex"> - <number>0</number> + <number>2</number> </property> <widget class="QWidget" name="tab"> <attribute name="title"> @@ -225,7 +225,14 @@ </widget> </item> <item row="0" column="1"> - <widget class="QSpinBox" name="mem_time_read"/> + <widget class="QSpinBox" name="mem_time_read"> + <property name="minimum"> + <number>1</number> + </property> + <property name="maximum"> + <number>999999999</number> + </property> + </widget> </item> <item row="1" column="0"> <widget class="QLabel" name="label_3"> @@ -235,7 +242,14 @@ </widget> </item> <item row="1" column="1"> - <widget class="QSpinBox" name="mem_time_write"/> + <widget class="QSpinBox" name="mem_time_write"> + <property name="minimum"> + <number>1</number> + </property> + <property name="maximum"> + <number>999999999</number> + </property> + </widget> </item> </layout> </widget> diff --git a/qtmips_gui/cachedock.cpp b/qtmips_gui/cachedock.cpp index 79097b3..8e63565 100644 --- a/qtmips_gui/cachedock.cpp +++ b/qtmips_gui/cachedock.cpp @@ -17,6 +17,12 @@ CacheDock::CacheDock(QWidget *parent, const QString &type) : QDockWidget(parent) layout_top_form->addRow("Hit:", l_hit); l_miss = new QLabel("0", top_form); layout_top_form->addRow("Miss:", l_miss); + l_stalled = new QLabel("0", top_form); + layout_top_form->addRow("Memory stall cycles:", l_stalled); + l_usage = new QLabel("0.000%", top_form); + layout_top_form->addRow("Usage effectiveness:", l_usage); + l_speed = new QLabel("100%", top_form); + layout_top_form->addRow("Speed improvement:", l_speed); graphicsview = new GraphicsView(top_widget); graphicsview->setVisible(false); @@ -30,9 +36,13 @@ CacheDock::CacheDock(QWidget *parent, const QString &type) : QDockWidget(parent) void CacheDock::setup(const machine::Cache *cache) { l_hit->setText("0"); l_miss->setText("0"); + l_stalled->setText("0"); + l_usage->setText("0.000%"); + l_speed->setText("100%"); if (cache->config().enabled()) { connect(cache, SIGNAL(hit_update(uint)), this, SLOT(hit_update(uint))); connect(cache, SIGNAL(miss_update(uint)), this, SLOT(miss_update(uint))); + connect(cache, SIGNAL(statistics_update(uint,double,double)), this, SLOT(statistics_update(uint,double,double))); } top_form->setVisible(cache->config().enabled()); no_cache->setVisible(!cache->config().enabled()); @@ -51,3 +61,9 @@ void CacheDock::hit_update(unsigned val) { void CacheDock::miss_update(unsigned val) { l_miss->setText(QString::number(val)); } + +void CacheDock::statistics_update(unsigned stalled_cycles, double speed_improv, double usage_effic) { + l_stalled->setText(QString::number(stalled_cycles)); + l_usage->setText(QString::number(usage_effic, 'f', 3) + QString("%")); + l_speed->setText(QString::number(speed_improv, 'f', 0) + QString("%")); +} diff --git a/qtmips_gui/cachedock.h b/qtmips_gui/cachedock.h index 598a9c7..7e5ac44 100644 --- a/qtmips_gui/cachedock.h +++ b/qtmips_gui/cachedock.h @@ -18,12 +18,13 @@ public: private slots: void hit_update(unsigned); void miss_update(unsigned); + void statistics_update(unsigned stalled_cycles, double speed_improv, double usage_effic); private: QVBoxLayout *layout_box; QWidget *top_widget, *top_form; QFormLayout *layout_top_form; - QLabel *l_hit, *l_miss, *no_cache; + QLabel *l_hit, *l_miss, *l_stalled, *l_speed, *l_usage, *no_cache; GraphicsView *graphicsview; CacheViewScene *cachescene; }; |