Skip to content

Commit

Permalink
Force store-n-forward for OQ router
Browse files Browse the repository at this point in the history
  • Loading branch information
nicmcd committed Nov 16, 2021
1 parent aa75b45 commit 4034d20
Show file tree
Hide file tree
Showing 6 changed files with 9 additions and 5 deletions.
2 changes: 1 addition & 1 deletion config/dragonfly_oq_stream_stream_stream.json
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@
"congestion_mode": "output",
"input_queue_mode": "fixed",
"input_queue_depth": 64,
"store_and_forward": false,
"store_and_forward": true,
"transfer_latency": 25,
"output_queue_depth": "infinite",
"crossbar": {
Expand Down
2 changes: 1 addition & 1 deletion config/hyperx_oq_alltoall.json
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@
"input_queue_depth": 5,
"input_queue_max": 32,
"input_queue_min": 16,
"store_and_forward": false,
"store_and_forward": true,
"transfer_latency": 1,
"output_queue_depth": 16,
"output_crossbar": {
Expand Down
2 changes: 1 addition & 1 deletion config/singlerouter_oq_blast.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
"congestion_mode": "downstream",
"input_queue_mode": "fixed",
"input_queue_depth": 64,
"store_and_forward": false,
"store_and_forward": true,
"transfer_latency": 100,
"output_queue_depth": "infinite",
"output_crossbar": {
Expand Down
2 changes: 1 addition & 1 deletion config/singlerouter_oq_blast_blast.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
"congestion_mode": "downstream",
"input_queue_mode": "fixed",
"input_queue_depth": 64,
"store_and_forward": false,
"store_and_forward": true,
"transfer_latency": 100,
"output_queue_depth": "infinite",
"output_crossbar": {
Expand Down
1 change: 0 additions & 1 deletion src/router/outputqueued/InputQueue.cc
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,6 @@ void InputQueue::processPipeline() {
router_->sendCredit(port_, vc_);

// put it in the routing pipeline stage
assert(rfe_.flit == nullptr);
rfe_.flit = flit;

// set state as ready to request routing algorithm
Expand Down
5 changes: 5 additions & 0 deletions src/router/outputqueued/Router.cc
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,11 @@ Router::Router(const std::string& _name, const Component* _parent,
// determine if the router will use store and forward
assert(_settings.contains("store_and_forward"));
bool storeAndForward = _settings["store_and_forward"].get<bool>();
assert(storeAndForward);
/* There is a problem if this is not enabled. The flits could still be on the
incoming wire when they also get transferred to the output side. The
channel utilization per VC is wrong in this case. In theory this could
cause other issues for very long packets. */

// create routing algorithms, input queues, link to routing algorithm,
// crossbar, and schedulers
Expand Down

0 comments on commit 4034d20

Please sign in to comment.