ruby: Simplify RubyPort flow control and routing
authorAndreas Hansson <andreas.hansson@arm.com>
Mon, 24 Feb 2014 01:16:16 +0000 (19:16 -0600)
committerAndreas Hansson <andreas.hansson@arm.com>
Mon, 24 Feb 2014 01:16:16 +0000 (19:16 -0600)
commit5755fff99811a334874026c465ccebb9b0627230
tree78e1978de08c9c69eba65efe4ffca35b39210f87
parent6aafd5cb3fdaf43aeaf71ea47046dfc909eeeb62
ruby: Simplify RubyPort flow control and routing

This patch simplfies the retry logic in the RubyPort, avoiding
redundant attributes, and enforcing more stringent checks on the
interactions with the normal ports. The patch also simplifies the
routing done by the RubyPort, using the port identifiers instead of a
heavy-weight sender state.

The patch also fixes a bug in the sending of responses from PIO
ports. Previously these responses bypassed the queue in the queued
port, and ignored the return value, potentially leading to response
packets being lost.

Committed by: Nilay Vaish <nilay@cs.wisc.edu>
src/mem/qport.hh
src/mem/ruby/system/RubyPort.cc
src/mem/ruby/system/RubyPort.hh
src/mem/ruby/system/Sequencer.cc