Skip to content

Commit 704ee91

Browse files
committed
mem: rename MemCtrl to HeteroMemCtrl
Change-Id: I5203c7c45edaa5ce2bc8f7d62cea8abe28605696
1 parent fac8020 commit 704ee91

File tree

8 files changed

+47
-48
lines changed

8 files changed

+47
-48
lines changed

configs/common/MemConfig.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ def config_mem(options, system):
235235
# Create a controller if not sharing a channel with DRAM
236236
# in which case the controller has already been created
237237
if not opt_hybrid_channel:
238-
mem_ctrl = m5.objects.MemCtrl()
238+
mem_ctrl = m5.objects.HeteroMemCtrl()
239239
mem_ctrl.nvm = nvm_intf
240240

241241
mem_ctrls.append(mem_ctrl)

configs/dram/lat_mem_rd.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@
119119

120120
# the following assumes that we are using the native DRAM
121121
# controller, check to be sure
122-
if isinstance(ctrl, m5.objects.MemCtrl):
122+
if isinstance(ctrl, m5.objects.HeteroMemCtrl):
123123
# make the DRAM refresh interval sufficiently infinite to avoid
124124
# latency spikes
125125
ctrl.tREFI = '100s'

configs/nvm/sweep_hybrid.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,8 @@
117117

118118
# the following assumes that we are using the native controller
119119
# with NVM and DRAM interfaces, check to be sure
120-
if not isinstance(system.mem_ctrls[0], m5.objects.MemCtrl):
121-
fatal("This script assumes the controller is a MemCtrl subclass")
120+
if not isinstance(system.mem_ctrls[0], m5.objects.HeteroMemCtrl):
121+
fatal("This script assumes the controller is a HeteroMemCtrl subclass")
122122
if not isinstance(system.mem_ctrls[0].dram, m5.objects.DRAMInterface):
123123
fatal("This script assumes the first memory is a DRAMInterface subclass")
124124
if not isinstance(system.mem_ctrls[0].nvm, m5.objects.NVMInterface):

configs/ruby/GPU_VIPER.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -523,7 +523,7 @@ def construct_gpudirs(options, system, ruby_system, network):
523523
int(math.log(options.dgpu_num_dirs, 2)), options.cacheline_size,
524524
xor_low_bit)
525525
if issubclass(mem_type, DRAMInterface):
526-
mem_ctrl = m5.objects.MemCtrl(dram = dram_intf)
526+
mem_ctrl = m5.objects.HeteroMemCtrl(dram = dram_intf)
527527
else:
528528
mem_ctrl = dram_intf
529529

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,14 @@
4343
from m5.objects.SimpleMemCtrl import *
4444

4545

46-
# MemCtrl controls a dram and an nvm interface
46+
# HeteroMemCtrl controls a dram and an nvm interface
4747
# Both memory interfaces share the data and command bus
48-
class MemCtrl(SimpleMemCtrl):
49-
type = 'MemCtrl'
50-
cxx_header = "mem/mem_ctrl.hh"
51-
cxx_class = 'gem5::memory::MemCtrl'
48+
class HeteroMemCtrl(SimpleMemCtrl):
49+
type = 'HeteroMemCtrl'
50+
cxx_header = "mem/hetero_mem_ctrl.hh"
51+
cxx_class = 'gem5::memory::HeteroMemCtrl'
5252

5353
# Interface to nvm memory media
54-
# The dram interface `dram` used by MemCtrl is defined in
54+
# The dram interface `dram` used by HeteroMemCtrl is defined in
5555
# the SimpleMemCtrl
5656
nvm = Param.NVMInterface("NVM memory interface to use")

src/mem/SConscript

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ SimObject('SysBridge.py', sim_objects=['SysBridge'])
5050
DebugFlag('SysBridge')
5151
SimObject('SimpleMemCtrl.py', sim_objects=['SimpleMemCtrl'],
5252
enums=['MemSched'])
53-
SimObject('MemCtrl.py', sim_objects=['MemCtrl'])
53+
SimObject('HeteroMemCtrl.py', sim_objects=['HeteroMemCtrl'])
5454
SimObject('MemInterface.py', sim_objects=['MemInterface'], enums=['AddrMap'])
5555
SimObject('DRAMInterface.py', sim_objects=['DRAMInterface'],
5656
enums=['PageManage'])
Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,14 @@
3838
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3939
*/
4040

41-
#include "mem/mem_ctrl.hh"
42-
4341
#include "base/trace.hh"
4442
#include "debug/DRAM.hh"
4543
#include "debug/Drain.hh"
4644
#include "debug/MemCtrl.hh"
4745
#include "debug/NVM.hh"
4846
#include "debug/QOS.hh"
4947
#include "mem/dram_interface.hh"
48+
#include "mem/mem_ctrl.hh"
5049
#include "mem/mem_interface.hh"
5150
#include "mem/nvm_interface.hh"
5251
#include "sim/system.hh"
@@ -57,7 +56,7 @@ namespace gem5
5756
namespace memory
5857
{
5958

60-
MemCtrl::MemCtrl(const MemCtrlParams &p) :
59+
HeteroMemCtrl::HeteroMemCtrl(const HeteroMemCtrlParams &p) :
6160
SimpleMemCtrl(p),
6261
nvm(p.nvm)
6362
{
@@ -66,9 +65,9 @@ MemCtrl::MemCtrl(const MemCtrlParams &p) :
6665
writeQueue.resize(p.qos_priorities);
6766

6867
fatal_if(dynamic_cast<DRAMInterface*>(dram) == nullptr,
69-
"MemCtrl's dram interface must be of type DRAMInterface.\n");
68+
"HeteroMemCtrl's dram interface must be of type DRAMInterface.\n");
7069
fatal_if(dynamic_cast<NVMInterface*>(nvm) == nullptr,
71-
"MemCtrl's nvm interface must be of type NVMInterface.\n");
70+
"HeteroMemCtrl's nvm interface must be of type NVMInterface.\n");
7271

7372
// hook up interfaces to the controller
7473
dram->setCtrl(this, commandWindow);
@@ -88,7 +87,7 @@ MemCtrl::MemCtrl(const MemCtrlParams &p) :
8887
}
8988

9089
Tick
91-
MemCtrl::recvAtomic(PacketPtr pkt)
90+
HeteroMemCtrl::recvAtomic(PacketPtr pkt)
9291
{
9392
Tick latency = 0;
9493

@@ -104,7 +103,7 @@ MemCtrl::recvAtomic(PacketPtr pkt)
104103
}
105104

106105
bool
107-
MemCtrl::recvTimingReq(PacketPtr pkt)
106+
HeteroMemCtrl::recvTimingReq(PacketPtr pkt)
108107
{
109108
// This is where we enter from the outside world
110109
DPRINTF(MemCtrl, "recvTimingReq: request %s addr %#x size %d\n",
@@ -193,7 +192,7 @@ MemCtrl::recvTimingReq(PacketPtr pkt)
193192
}
194193

195194
void
196-
MemCtrl::processRespondEvent(MemInterface* mem_intr,
195+
HeteroMemCtrl::processRespondEvent(MemInterface* mem_intr,
197196
MemPacketQueue& queue,
198197
EventFunctionWrapper& resp_event)
199198
{
@@ -208,7 +207,7 @@ MemCtrl::processRespondEvent(MemInterface* mem_intr,
208207
}
209208

210209
MemPacketQueue::iterator
211-
MemCtrl::chooseNext(MemPacketQueue& queue, Tick extra_col_delay,
210+
HeteroMemCtrl::chooseNext(MemPacketQueue& queue, Tick extra_col_delay,
212211
MemInterface* mem_int)
213212
{
214213
// This method does the arbitration between requests.
@@ -246,7 +245,7 @@ MemCtrl::chooseNext(MemPacketQueue& queue, Tick extra_col_delay,
246245
}
247246

248247
std::pair<MemPacketQueue::iterator, Tick>
249-
MemCtrl::chooseNextFRFCFS(MemPacketQueue& queue, Tick extra_col_delay,
248+
HeteroMemCtrl::chooseNextFRFCFS(MemPacketQueue& queue, Tick extra_col_delay,
250249
MemInterface* mem_intr)
251250
{
252251

@@ -274,9 +273,9 @@ MemCtrl::chooseNextFRFCFS(MemPacketQueue& queue, Tick extra_col_delay,
274273

275274

276275
Tick
277-
MemCtrl::doBurstAccess(MemPacket* mem_pkt, MemInterface* mem_intr)
276+
HeteroMemCtrl::doBurstAccess(MemPacket* mem_pkt, MemInterface* mem_intr)
278277
{
279-
// mem_intr will be dram by default in MemCtrl
278+
// mem_intr will be dram by default in HeteroMemCtrl
280279

281280
// When was command issued?
282281
Tick cmd_at;
@@ -296,9 +295,9 @@ MemCtrl::doBurstAccess(MemPacket* mem_pkt, MemInterface* mem_intr)
296295
}
297296

298297
bool
299-
MemCtrl::memBusy(MemInterface* mem_intr) {
298+
HeteroMemCtrl::memBusy(MemInterface* mem_intr) {
300299

301-
// mem_intr in case of MemCtrl will always be dram
300+
// mem_intr in case of HeteroMemCtrl will always be dram
302301

303302
// check ranks for refresh/wakeup - uses busStateNext, so done after
304303
// turnaround decisions
@@ -324,41 +323,41 @@ MemCtrl::memBusy(MemInterface* mem_intr) {
324323
}
325324

326325
void
327-
MemCtrl::nonDetermReads(MemInterface* mem_intr)
326+
HeteroMemCtrl::nonDetermReads(MemInterface* mem_intr)
328327
{
329328
// mem_intr by default points to dram in case
330-
// of MemCtrl, therefore, calling nonDetermReads
329+
// of HeteroMemCtrl, therefore, calling nonDetermReads
331330
// from SimpleMemCtrl using nvm interace
332331
SimpleMemCtrl::nonDetermReads(nvm);
333332
}
334333

335334
bool
336-
MemCtrl::nvmWriteBlock(MemInterface* mem_intr)
335+
HeteroMemCtrl::nvmWriteBlock(MemInterface* mem_intr)
337336
{
338337
// mem_intr by default points to dram in case
339-
// of MemCtrl, therefore, calling nvmWriteBlock
338+
// of HeteroMemCtrl, therefore, calling nvmWriteBlock
340339
// from SimpleMemCtrl using nvm interface
341340
return SimpleMemCtrl::nvmWriteBlock(nvm);
342341
}
343342

344343
Tick
345-
MemCtrl::minReadToWriteDataGap()
344+
HeteroMemCtrl::minReadToWriteDataGap()
346345
{
347346
return std::min(dram->minReadToWriteDataGap(),
348347
nvm->minReadToWriteDataGap());
349348
}
350349

351350
Tick
352-
MemCtrl::minWriteToReadDataGap()
351+
HeteroMemCtrl::minWriteToReadDataGap()
353352
{
354353
return std::min(dram->minWriteToReadDataGap(),
355354
nvm->minWriteToReadDataGap());
356355
}
357356

358357
Addr
359-
MemCtrl::burstAlign(Addr addr, MemInterface* mem_intr) const
358+
HeteroMemCtrl::burstAlign(Addr addr, MemInterface* mem_intr) const
360359
{
361-
// mem_intr will point to dram interface in MemCtrl
360+
// mem_intr will point to dram interface in HeteroMemCtrl
362361
if (mem_intr->getAddrRange().contains(addr)) {
363362
return (addr & ~(Addr(mem_intr->bytesPerBurst() - 1)));
364363
} else {
@@ -368,9 +367,9 @@ MemCtrl::burstAlign(Addr addr, MemInterface* mem_intr) const
368367
}
369368

370369
bool
371-
MemCtrl::pktSizeCheck(MemPacket* mem_pkt, MemInterface* mem_intr) const
370+
HeteroMemCtrl::pktSizeCheck(MemPacket* mem_pkt, MemInterface* mem_intr) const
372371
{
373-
// mem_intr will point to dram interface in MemCtrl
372+
// mem_intr will point to dram interface in HeteroMemCtrl
374373
if (mem_pkt->isDram()) {
375374
return (mem_pkt->size <= mem_intr->bytesPerBurst());
376375
} else {
@@ -379,7 +378,7 @@ MemCtrl::pktSizeCheck(MemPacket* mem_pkt, MemInterface* mem_intr) const
379378
}
380379

381380
void
382-
MemCtrl::recvFunctional(PacketPtr pkt)
381+
HeteroMemCtrl::recvFunctional(PacketPtr pkt)
383382
{
384383
bool found;
385384

@@ -395,7 +394,7 @@ MemCtrl::recvFunctional(PacketPtr pkt)
395394
}
396395

397396
bool
398-
MemCtrl::allIntfDrained() const
397+
HeteroMemCtrl::allIntfDrained() const
399398
{
400399
// ensure dram is in power down and refresh IDLE states
401400
bool dram_drained = dram->allRanksDrained();
@@ -406,7 +405,7 @@ MemCtrl::allIntfDrained() const
406405
}
407406

408407
DrainState
409-
MemCtrl::drain()
408+
HeteroMemCtrl::drain()
410409
{
411410
// if there is anything in any of our internal queues, keep track
412411
// of that as well
@@ -432,7 +431,7 @@ MemCtrl::drain()
432431
}
433432

434433
void
435-
MemCtrl::drainResume()
434+
HeteroMemCtrl::drainResume()
436435
{
437436
if (!isTimingMode && system()->isTimingMode()) {
438437
// if we switched to timing mode, kick things into action,
@@ -450,7 +449,7 @@ MemCtrl::drainResume()
450449
}
451450

452451
AddrRangeList
453-
MemCtrl::getAddrRanges()
452+
HeteroMemCtrl::getAddrRanges()
454453
{
455454
AddrRangeList ranges;
456455
ranges.push_back(dram->getAddrRange());
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,21 +40,21 @@
4040

4141
/**
4242
* @file
43-
* MemCtrl declaration
43+
* HeteroMemCtrl declaration
4444
*/
4545

46-
#ifndef __MEM_CTRL_HH__
47-
#define __MEM_CTRL_HH__
46+
#ifndef __HETERO_MEM_CTRL_HH__
47+
#define __HETERO_MEM_CTRL_HH__
4848

4949
#include "mem/simple_mem_ctrl.hh"
50-
#include "params/MemCtrl.hh"
50+
#include "params/HeteroMemCtrl.hh"
5151

5252
namespace gem5
5353
{
5454

5555
namespace memory
5656
{
57-
class MemCtrl : public SimpleMemCtrl
57+
class HeteroMemCtrl : public SimpleMemCtrl
5858
{
5959
private:
6060

@@ -120,7 +120,7 @@ class MemCtrl : public SimpleMemCtrl
120120

121121
public:
122122

123-
MemCtrl(const MemCtrlParams &p);
123+
HeteroMemCtrl(const HeteroMemCtrlParams &p);
124124

125125
bool allIntfDrained() const override;
126126
DrainState drain() override;
@@ -137,4 +137,4 @@ class MemCtrl : public SimpleMemCtrl
137137
} // namespace memory
138138
} // namespace gem5
139139

140-
#endif //__MEM_CTRL_HH__
140+
#endif //__HETERO_MEM_CTRL_HH__

0 commit comments

Comments
 (0)