Skip to content

Commit a01a020

Browse files
committed
mem: first version of second class (2 interfaces)
Change-Id: I999a7f15b795a97da247f14b5069cec5143c4945
1 parent 3801551 commit a01a020

File tree

4 files changed

+1217
-53
lines changed

4 files changed

+1217
-53
lines changed

src/mem/HetMemCtrl.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# Copyright (c) 2012-2020 ARM Limited
2+
# All rights reserved.
3+
#
4+
# The license below extends only to copyright in the software and shall
5+
# not be construed as granting a license to any other intellectual
6+
# property including but not limited to intellectual property relating
7+
# to a hardware implementation of the functionality of the software
8+
# licensed hereunder. You may use the software subject to the license
9+
# terms below provided that you ensure that this notice is replicated
10+
# unmodified and in its entirety in all distributions of the software,
11+
# modified or unmodified, in source code or in binary form.
12+
#
13+
# Copyright (c) 2013 Amin Farmahini-Farahani
14+
# Copyright (c) 2015 University of Kaiserslautern
15+
# Copyright (c) 2015 The University of Bologna
16+
# All rights reserved.
17+
#
18+
# Redistribution and use in source and binary forms, with or without
19+
# modification, are permitted provided that the following conditions are
20+
# met: redistributions of source code must retain the above copyright
21+
# notice, this list of conditions and the following disclaimer;
22+
# redistributions in binary form must reproduce the above copyright
23+
# notice, this list of conditions and the following disclaimer in the
24+
# documentation and/or other materials provided with the distribution;
25+
# neither the name of the copyright holders nor the names of its
26+
# contributors may be used to endorse or promote products derived from
27+
# this software without specific prior written permission.
28+
#
29+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
30+
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
31+
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
32+
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
33+
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
34+
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
35+
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
36+
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
37+
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
38+
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
39+
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
40+
41+
from m5.params import *
42+
from m5.proxy import *
43+
from m5.objects.MemCtrl import *
44+
45+
class HetMemSched(Enum): vals = ['fcfs', 'frfcfs']
46+
47+
class HetMemCtrl(MemCtrl):
48+
type = 'HetMemCtrl'
49+
cxx_header = "mem/mem_ctrl.hh"
50+
cxx_class = 'gem5::memory::HetMemCtrl'
51+
52+
# Interface to memory media
53+
mem2 = Param.MemInterface(NULL, "Memory interface")
54+

src/mem/SConscript

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ SimObject('Bridge.py', sim_objects=['Bridge'])
4949
SimObject('SysBridge.py', sim_objects=['SysBridge'])
5050
DebugFlag('SysBridge')
5151
SimObject('MemCtrl.py', sim_objects=['MemCtrl'], enums=['MemSched'])
52+
SimObject('HetMemCtrl.py', sim_objects=['HetMemCtrl'], enums=['HetMemSched'])
5253
SimObject('MemInterface.py', sim_objects=['MemInterface'], enums=['AddrMap'])
5354
SimObject('DRAMInterface.py', sim_objects=['DRAMInterface'],
5455
enums=['PageManage'])
@@ -135,6 +136,7 @@ DebugFlag('ExternalPort')
135136
DebugFlag('HtmMem', 'Hardware Transactional Memory (Mem side)')
136137
DebugFlag('LLSC')
137138
DebugFlag('MemCtrl')
139+
DebugFlag('HetMemCtrl')
138140
DebugFlag('MMU')
139141
DebugFlag('MemoryAccess')
140142
DebugFlag('PacketQueue')

0 commit comments

Comments
 (0)