Crude fix for bandwidth calculations with pseudo-channels
This commit is contained in:
@@ -506,11 +506,13 @@ def memory_utilisation_in_Gibps_without_idle(connection):
|
||||
def memory_utilisation_percent_including_idle(connection):
|
||||
cursor = connection.cursor()
|
||||
cursor.execute("""SELECT SUM(DataStrobeEnd - DataStrobeBegin) FROM Phases""")
|
||||
active = cursor.fetchone()
|
||||
active = cursor.fetchone()[0]
|
||||
if getPseudoChannelMode(connection):
|
||||
active /= 2
|
||||
cursor = connection.cursor()
|
||||
cursor.execute("""SELECT MAX(DataStrobeEnd) FROM Phases""")
|
||||
total = cursor.fetchone()
|
||||
return (active[0] / total[0]) * 100
|
||||
total = cursor.fetchone()[0]
|
||||
return (active / total) * 100
|
||||
|
||||
|
||||
# def refreshMissDecision(connection, calculatedMetrics):
|
||||
|
||||
@@ -115,6 +115,11 @@ void ControllerRecordable::controllerMethod()
|
||||
|
||||
uint64_t windowNumberOfBeatsServed = numberOfBeatsServed - lastNumberOfBeatsServed;
|
||||
lastNumberOfBeatsServed = numberOfBeatsServed;
|
||||
|
||||
// FIX: HBM pseudo-channels
|
||||
// maybe better solution in the future?
|
||||
windowNumberOfBeatsServed /= memSpec.pseudoChannelsPerChannel;
|
||||
|
||||
sc_time windowActiveTime =
|
||||
activeTimeMultiplier * static_cast<double>(windowNumberOfBeatsServed);
|
||||
double windowAverageBandwidth = windowActiveTime / windowSizeTime;
|
||||
|
||||
Reference in New Issue
Block a user