> BTW, in the scenario above, the functionalWrite will not work correctly,
data
> updated by functionalWrite in controllers will be replaced with old data
from a
> queued packet several ticks later.
functionalWrite works well in this scenario, the "functional write failed"
bug is already fixed.
Sorry for my missunderstanding, I need to improve my c++ reading skills.
When I read the code carefully, it seems to me, that the same logic, as it
is implemented for writing in the RubySystem::functionalWrite(PacketPtr
pkt) and RubyMemoryControl::functionalWriteBuffers(Packet *pkt), is alredy
prepared also for reading in the
RubyMemoryControl::functionalReadBuffers(Packet *pkt).
Is there any reason, why it is not used in the
RubySystem::functionalRead(PacketPtr pkt) function ?
Is the following code to add before the "return false" the right solution ?
Regards,
Jiri Kaspar
-----------------------
for (unsigned int i = 0; i < num_controllers;++i) {
if (m_abs_cntrl_vec[i]->functionalReadBuffers(pkt)) return true;
}
for (unsigned int i = 0; i < m_memory_controller_vec.size() ;++i) {
if (m_memory_controller_vec[i]->functionalReadBuffers(pkt)) return
true;
}
if (m_network_ptr->functionalWrite(pkt)) return true;
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev