Hi,
As this function issueRequest comment said, it issue a memory request.
But it only pop a MemoryNode which carries request message from
corresponding bankqueue at line 6 and then push it in m_response_queue
at line 37. I can't find which function handles this MemoryNode like
write data back to memory which is pointed by pointer
req.m_msgptr->DataBlk.
1. void
2. MemoryControl::issueRequest(int bank)
3. {
4. int rank = getRank(bank);
5. MemoryNode req = m_bankQueues[bank].front();
6. m_bankQueues[bank].pop_front();
7. DPRINTF(RubyMemory, "Mem issue request%7d: %#08x %c "
8. "bank=%3x sched %c msg %s\n", req.m_msg_counter,
req.m_addr,
9. req.m_is_mem_read? 'R':'W',
10. bank, m_event.scheduled() ? 'Y':'N', *req.m_msgptr);
11. if (req.m_msgptr) { // don't enqueue L3 writebacks
12. enqueueToDirectory(req, m_mem_ctl_latency +
m_mem_fixed_delay);
13. }
14. m_oldRequest[bank] = 0;
15. markTfaw(rank);
16. m_bankBusyCounter[bank] = m_bank_busy_time;
17. m_busBusy_WhichRank = rank;
18. if (req.m_is_mem_read) {
19. m_profiler_ptr->profileMemRead();
20. m_busBusyCounter_Basic = m_basic_bus_busy_time;
21. m_busBusyCounter_Write = m_basic_bus_busy_time +
m_read_write_delay;
22. m_busBusyCounter_ReadNewRank =
23. m_basic_bus_busy_time + m_rank_rank_delay;
24. } else {
25. m_profiler_ptr->profileMemWrite();
26. m_busBusyCounter_Basic = m_basic_bus_busy_time;
27. m_busBusyCounter_Write = m_basic_bus_busy_time;
28. m_busBusyCounter_ReadNewRank = m_basic_bus_busy_time;
29. }
30. }
31. void
32. MemoryControl::enqueueToDirectory(MemoryNode req, int latency)
33. {
34. Time arrival_time = g_eventQueue_ptr->getTime()
35. + (latency * m_mem_bus_cycle_multiplier);
36. req.m_time = arrival_time;
37. m_response_queue.push_back(req);
38. DPRINTF(RubyMemory, "Enqueueing msg %#08x %c back to
directory at %15d\n",
39. req.m_addr, req.m_is_mem_read ? 'R':'W',
40. arrival_time * g_eventQueue_ptr->getClock());
41. // schedule the wake up
42. g_eventQueue_ptr->scheduleEventAbsolute(m_consumer_ptr,
arrival_time);
43. }
Thank you!
--
Chuanlei Zheng
Department of Computer Science and Technology
Nanjing University
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users