Hi,

I am doing some analysis with the Timing access model for dcache ports and
I am seeing weird behavior that does not make sense to me. Similar to the
DcachePort class in Timing and O3 cpus, I have a
CPU::DcachePort::recvTiming() function that processes timing packets
received by DcachePort in cpu side. I found out that in one cycle (but in
consecutive ticks), the recvTiming() is called three times which means
three packets are received by the DcachePort defined in cpu side. Below is
a piece of the log file showing this behavior:

13743000: system.cpu1-dport: Received response for Addr 0x67c28 from Dcache
13743000: system.cpu1.dcache-cpu_side_port-queue.wrapped_event:
EventWrapped event scheduled @ 13743001
13743001: system.cpu1-dport: Received response for Addr 0x67c2c from Dcache
13743001: system.cpu1.dcache-cpu_side_port-queue.wrapped_event:
EventWrapped event scheduled @ 13743002
13743002: system.cpu1-dport: Received response for Addr 0x67c30 from Dcache
13743002: system.cpu1-dport.wrapped_event: EventWrapped event scheduled @
13743500

I thought the l1 cache can only respond one packet each cache cycle, but
now I am seeing that many packets could be responded by the l1 cache in the
same cycle (even though those packets are initially sent to the cache in
different cycles). Is that expected?
If so, I think this is cpu's job to limit the number of packets processed
each cycle and schedule a retry event or something. Is it right?

ISA: ARM, cpu frequency: 2GHz, l1 latency: 1ns, l1 block size: 64, l1
assoc: 1, l1 mshr: 10
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to