diff --git a/DRAMSys/analyzer/scripts/metrics.py b/DRAMSys/analyzer/scripts/metrics.py
index 6f2d3bc2..bbac938f 100644
--- a/DRAMSys/analyzer/scripts/metrics.py
+++ b/DRAMSys/analyzer/scripts/metrics.py
@@ -219,6 +219,65 @@ def number_of_accesses(connection):
return result[0]
+@metric
+def bank_overlap_ratio(connection):
+ # Calculates how many banks are open in parallel
+ cursor = connection.cursor()
+ cursor.execute("SELECT clk FROM GeneralInfo ")
+ clk = cursor.fetchone()
+
+ cursor.execute("select TraceEnd from GeneralInfo")
+ traceEndTMP = cursor.fetchone()
+ traceEnd = int(traceEndTMP[0]/clk[0])
+
+ trace = []
+
+ cursor.execute("""
+ select p1.PhaseBegin, p1.PhaseName from Phases p1
+ where
+ (p1.PhaseName = "ACT" or p1.PhaseName = "PRE_ALL" or p1.PhaseName = "PRE")
+ order by PhaseBegin
+ """)
+ prevPhase = "PRE_ALL"
+ prevTime = 0
+
+ for c in cursor:
+ trace.append([(int(c[0]/clk[0])),c[1]])
+
+ #Insert a pseudo precharge all to mark the end of the trace
+ trace.append([traceEnd,"PRE_ALL"])
+
+ bankCounter = 0
+ bankTime = []
+
+ for i in range(0, getNumberOfBanks(connection)+1):
+ bankTime.append(0)
+
+ currentTime = 0
+
+ for t in trace:
+
+ interval = t[0] - currentTime
+ bankTime[bankCounter] += interval
+ currentTime = t[0]
+
+ if(t[1] == "ACT"):
+ bankCounter += 1
+ elif(t[1] == "PRE_ALL"):
+ bankCounter = 0
+ elif(t[1] == "PRE"):
+ bankCounter -= 1
+ else:
+ print ("ERROR")
+ return 0
+
+
+ for i in range(0, getNumberOfBanks(connection)+1):
+ bankTime[i] = round(bankTime[i]/traceEnd * 100,2)
+
+ return ",".join(format(x, "6.2f") for x in bankTime)
+
+
# @metric
# def number_of_precharges(connection):
# cursor = connection.cursor()
diff --git a/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_x16_brc.xml b/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_x16_brc.xml
new file mode 100644
index 00000000..dfddfbc9
--- /dev/null
+++ b/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_x16_brc.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_x16_rbc.xml b/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_x16_rbc.xml
new file mode 100644
index 00000000..8323d7b5
--- /dev/null
+++ b/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_x16_rbc.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+