summaryrefslogtreecommitdiff
path: root/src/mem/ruby/network/garnet/fixed-pipeline
diff options
context:
space:
mode:
authorTushar Krishna <tushar@csail.mit.edu>2011-03-21 22:51:58 -0400
committerTushar Krishna <tushar@csail.mit.edu>2011-03-21 22:51:58 -0400
commit09c3a97a4c9aace6e2c52823679b31323cab42f6 (patch)
treed0340677be5f6cd4c10456fb70a46c1374f28e99 /src/mem/ruby/network/garnet/fixed-pipeline
parentd7aa794155a46a403825f82c1ea62cd38b9de788 (diff)
downloadgem5-09c3a97a4c9aace6e2c52823679b31323cab42f6.tar.xz
This patch adds the network tester for simple and garnet networks.
The tester code is in testers/networktest. The tester can be invoked by configs/example/ruby_network_test.py. A dummy coherence protocol called Network_test is also addded for network-only simulations and testing. The protocol takes in messages from the tester and just pushes them into the network in the appropriate vnet, without storing any state.
Diffstat (limited to 'src/mem/ruby/network/garnet/fixed-pipeline')
-rw-r--r--src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc14
-rw-r--r--src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc9
2 files changed, 10 insertions, 13 deletions
diff --git a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc
index dbfabc8f1..f0b8ccce7 100644
--- a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc
@@ -307,15 +307,15 @@ GarnetNetwork_d::printStats(ostream& out) const
}
out << "-------------" << endl;
- // out << "Total flits injected = " << m_flits_injected << endl;
- // out << "Total flits received = " << m_flits_received << endl;
+ out << "Total flits injected = " << m_flits_injected << endl;
+ out << "Total flits received = " << m_flits_received << endl;
out << "Average network latency = "
<< ((double) m_network_latency/ (double) m_flits_received)<< endl;
- // out << "Average queueing latency = "
- // << ((double) m_queueing_latency/ (double) m_flits_received)<< endl;
- // out << "Average latency = "
- // << ((double) (m_queueing_latency + m_network_latency) /
- // (double) m_flits_received)<< endl;
+ out << "Average queueing (at source NI) latency = "
+ << ((double) m_queueing_latency/ (double) m_flits_received)<< endl;
+ out << "Average latency = "
+ << ((double) (m_queueing_latency + m_network_latency) /
+ (double) m_flits_received)<< endl;
out << "-------------" << endl;
double m_total_link_power = 0.0;
diff --git a/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc b/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc
index 8299a294f..14105a38c 100644
--- a/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc
@@ -241,12 +241,9 @@ NetworkInterface_d::wakeup()
bool free_signal = false;
if (t_flit->get_type() == TAIL_ || t_flit->get_type() == HEAD_TAIL_) {
free_signal = true;
- // When we are doing network only testing, the messages do not
- // have to be buffered into the protocol buffers
- if (!m_net_ptr->isNetworkTesting()) {
- outNode_ptr[t_flit->get_vnet()]->
- enqueue(t_flit->get_msg_ptr(), 1);
- }
+
+ outNode_ptr[t_flit->get_vnet()]->enqueue(
+ t_flit->get_msg_ptr(), 1);
}
// Simply send a credit back since we are not buffering
// this flit in the NI