From 44678108e4c14773b3341e4fbc8042c7cabcf02b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Ko=C4=8D=C3=AD?= Date: Sat, 30 Dec 2017 18:48:29 +0100 Subject: Drop jump predictions Although there are branch likely instruction the whole mips instruction set is designed around static jump predictions. The usage of delay slot ensures that we don't have to handle jump predictions on cpu it self at all. Adding it on top of that makes little to no sense although that was the original plan. --- qtmips_gui/NewDialog.ui | 44 +------------------------------------------- qtmips_gui/mainwindow.cpp | 3 +-- qtmips_gui/newdialog.cpp | 15 --------------- 3 files changed, 2 insertions(+), 60 deletions(-) diff --git a/qtmips_gui/NewDialog.ui b/qtmips_gui/NewDialog.ui index f633d28..c1ec66c 100644 --- a/qtmips_gui/NewDialog.ui +++ b/qtmips_gui/NewDialog.ui @@ -7,7 +7,7 @@ 0 0 558 - 306 + 254 @@ -131,48 +131,6 @@ - - - - Flush pipeline on jump - - - - - - - Jump prediction - - - false - - - true - - - false - - - - - - Static - - - true - - - - - - - One level dynamic - - - - - - diff --git a/qtmips_gui/mainwindow.cpp b/qtmips_gui/mainwindow.cpp index 9e1902a..9384890 100644 --- a/qtmips_gui/mainwindow.cpp +++ b/qtmips_gui/mainwindow.cpp @@ -63,8 +63,7 @@ void MainWindow::create_core(machine::MachineConfig *config) { // Create machine view corescene = new CoreViewScene(coreview, machine); - //machine->set_speed(1000); // Set default speed to 1 sec - machine->set_speed(0); + machine->set_speed(1000); // Set default speed to 1 sec // Connect machine signals and slots connect(ui->actionRun, SIGNAL(triggered(bool)), machine, SLOT(play())); diff --git a/qtmips_gui/newdialog.cpp b/qtmips_gui/newdialog.cpp index 9d0e1ad..062eb2d 100644 --- a/qtmips_gui/newdialog.cpp +++ b/qtmips_gui/newdialog.cpp @@ -18,10 +18,6 @@ NewDialog::NewDialog(QWidget *parent, QSettings *settings) : QDialog(parent) { // Signals on Core tab CUSTOM_PRESET(ui->pipelined); CUSTOM_PRESET(ui->hazard); - CUSTOM_PRESET(ui->flush_jump); - CUSTOM_PRESET(ui->prediction); - CUSTOM_PRESET(ui->prediction_static); - CUSTOM_PRESET(ui->prediction_one_dynamic); // Signals on Memory tab CUSTOM_PRESET(ui->mem_protec_write); CUSTOM_PRESET(ui->mem_protec_exec); @@ -83,9 +79,6 @@ void NewDialog::preset(bool value) { // Core settings ui->pipelined->setChecked(pip); ui->hazard->setChecked(pip); - ui->flush_jump->setChecked(pip); - ui->prediction->setChecked(pip); - ui->prediction_one_dynamic->setChecked(pip); // Memory settings ui->mem_protec_write->setChecked(true); ui->mem_protec_exec->setChecked(true); @@ -116,10 +109,6 @@ void NewDialog::load_settings() { // Core tab LOAD_BUTTON(pipelined, false); LOAD_BUTTON(hazard, false); - LOAD_BUTTON(flush_jump, false); - LOAD_BUTTON(prediction, false); - LOAD_BUTTON(prediction_static, true); - LOAD_BUTTON(prediction_one_dynamic, false); // Memory tab LOAD_BUTTON(mem_protec_write, true); LOAD_BUTTON(mem_protec_exec, true); @@ -137,10 +126,6 @@ void NewDialog::store_settings() { // Core tab STORE_BUTTON(pipelined); STORE_BUTTON(hazard); - STORE_BUTTON(flush_jump); - STORE_BUTTON(prediction); - STORE_BUTTON(prediction_static); - STORE_BUTTON(prediction_one_dynamic); // Memory tab STORE_BUTTON(mem_protec_write); STORE_BUTTON(mem_protec_exec); -- cgit v1.2.3