Review Board 2.0.15


mem: replacing bytesPerCacheLine with DRAM burstLength in SimpleDRAM

Review Request #1927 - Created June 16, 2013 and submitted

Information
Amin Farmahini
gem5
Reviewers
Default
This patch gets rid of bytesPerCacheLine parameter and makes the DRAM configuration separate from cache line size. 
Instead of bytesPerCacheLine, I define a parameter for DRAM called burst_length. The burst_length parameter shows the length of a DRAM device burst in bits.
Also, I replace lines_per_rowbuffer with device_rowbuffer_size to improve code portablity.

Updates: 
- a burst length in beats for each memory type.
- an interface width for each memory type.
- the memory controller model is extended to reason about "system" packets vs "dram" packets and assemble the responses properly. It means that system packets larger than a full burst are split into multiple dram packets.
Some short and fairly long tests on DDR3 and LPDRR3 with cache lines of 32, 64, and 128 bytes. 

Issue Summary

41 26 8 7
Description From Last Updated Status
I think if we do indeed do this change we should have a clock and do as Nilay suggests. This ... Andreas Hansson June 17, 2013, 7:57 a.m. Open
I don't see how the bus width and burst size (in bits/bytes) is of any relevance here any longer. Now ... Andreas Hansson July 4, 2013, 12:54 a.m. Open
I would change the comment to say, 8 beats across a ... Andreas Hansson July 4, 2013, 12:54 a.m. Open
Once again, the size in bytes is not as relevant here, it is the BL that matters. Andreas Hansson July 4, 2013, 12:54 a.m. Open
...such that we know when the whole packet is served. Andreas Hansson July 4, 2013, 12:54 a.m. Open
Perhaps name the variable pktCount here as well? Andreas Hansson July 4, 2013, 12:54 a.m. Open
Same as above Andreas Hansson July 4, 2013, 12:54 a.m. Open
Could you add a comment that this is called multiple times on the same packet if a system packet is ... Andreas Hansson July 4, 2013, 12:54 a.m. Open
unsigned int Andreas Hansson July 4, 2013, 12:54 a.m. Open
I still don't understand why this is not const Andreas Hansson July 4, 2013, 12:54 a.m. Open
And this one :-) Andreas Hansson July 4, 2013, 12:54 a.m. Open
readBursts? Andreas Hansson July 4, 2013, 12:54 a.m. Open
I would move this to the initialisation list. Space around '/' Andreas Hansson July 4, 2013, 12:54 a.m. Open
\n at the end of the DPRINTF string. Andreas Hansson July 4, 2013, 12:54 a.m. Open
Move to initialisation list for these two. Andreas Hansson July 4, 2013, 12:54 a.m. Open
\n at the end Andreas Hansson July 4, 2013, 12:54 a.m. Open
Is the packet ptr still needed here? Andreas Hansson July 4, 2013, 12:54 a.m. Open
Would this not be easy enough to fix here? Andreas Hansson July 4, 2013, 12:54 a.m. Open
pktCount > 1, then new BurstHelper here? Andreas Hansson July 4, 2013, 12:54 a.m. Open
Why involve the absolute address here, and not just divide getSize and burstSize? Andreas Hansson July 4, 2013, 12:54 a.m. Open
wrtie Andreas Hansson July 4, 2013, 12:54 a.m. Open
Once again I'm not sure of the while loop here. Why not a for look with pktCount? Andreas Hansson July 4, 2013, 12:54 a.m. Open
Alignment here? Worth dealing with that as well I would imagine. Andreas Hansson July 4, 2013, 12:54 a.m. Open
dram_pkt->burstHelper still points to the burstHelper. Andreas Hansson July 4, 2013, 12:54 a.m. Open
Perhaps a stupid question, but is this entirely safe? I guess it is...just thinking in terms of types, assumptions on ... Andreas Hansson July 24, 2013, 7:28 a.m. Open
Do you perhaps want to add the device organisation here as well, i.e. 1x32, 8x8 etc. Andreas Hansson July 24, 2013, 7:28 a.m. Open
Review request changed
Updated (Aug. 19, 2013, 9:29 a.m.)

Status: Closed (submitted)