diff --git a/DRAMSys/traceAnalyzer/businessObjects/phases/phasefactory.cpp b/DRAMSys/traceAnalyzer/businessObjects/phases/phasefactory.cpp index 3f7dc143..8c92e00d 100644 --- a/DRAMSys/traceAnalyzer/businessObjects/phases/phasefactory.cpp +++ b/DRAMSys/traceAnalyzer/businessObjects/phases/phasefactory.cpp @@ -68,7 +68,7 @@ shared_ptr PhaseFactory::CreatePhase(ID id, const QString &dbPhaseName, else if (dbPhaseName == "ACT") return shared_ptr(new ACT(id, span, trans, {Timespan(span.Begin(), span.Begin() + clk)}, std::shared_ptr())); - else if (dbPhaseName == "PRE_ALL") + else if (dbPhaseName == "PREA") return shared_ptr(new PRECHARGE_ALL(id, span, trans, {Timespan(span.Begin(), span.Begin() + clk)}, std::shared_ptr())); else if (dbPhaseName == "REFA") diff --git a/DRAMSys/traceAnalyzer/data/tracedb.cpp b/DRAMSys/traceAnalyzer/data/tracedb.cpp index 305ebcb5..37ed9857 100644 --- a/DRAMSys/traceAnalyzer/data/tracedb.cpp +++ b/DRAMSys/traceAnalyzer/data/tracedb.cpp @@ -164,7 +164,7 @@ shared_ptr TraceDB::getNextPrecharge(ID currentTransactionId) { QSqlQuery query(database); QString queryText = queryTexts.queryHead + - "WHERE TransactionID > :currentID AND PhaseName IN ('PRE','PRE_ALL') LIMIT 1"; + "WHERE TransactionID > :currentID AND PhaseName IN ('PRE','PREA') LIMIT 1"; query.prepare(queryText); query.bindValue(":currentID", currentTransactionId); diff --git a/DRAMSys/traceAnalyzer/scripts/metrics.py b/DRAMSys/traceAnalyzer/scripts/metrics.py index feebd957..d3fc044d 100644 --- a/DRAMSys/traceAnalyzer/scripts/metrics.py +++ b/DRAMSys/traceAnalyzer/scripts/metrics.py @@ -239,8 +239,8 @@ def ACT_count(connection): @metric -def PRE_ALL_count(connection): - return get_phase_occurrences(connection, 'PRE_ALL') +def PREA_count(connection): + return get_phase_occurrences(connection, 'PREA') @metric @@ -327,17 +327,17 @@ def bank_overlap_ratio(connection): cursor.execute(""" select p1.PhaseBegin, p1.PhaseName from Phases p1 where - (p1.PhaseName = "ACT" or p1.PhaseName = "PRE_ALL" or p1.PhaseName = "PRE" or p1.PhaseName = "RDA" or p1.PhaseName = "WRA" or p1.PhaseName = "PREB" or p1.PhaseName = "ACTB") + (p1.PhaseName = "ACT" or p1.PhaseName = "PREA" or p1.PhaseName = "PRE" or p1.PhaseName = "RDA" or p1.PhaseName = "WRA" or p1.PhaseName = "PREB" or p1.PhaseName = "ACTB") order by PhaseBegin """) - prevPhase = "PRE_ALL" + prevPhase = "PREA" prevTime = 0 for c in cursor: trace.append([(int(c[0]/clk)), c[1]]) # Insert a pseudo precharge all to mark the end of the trace - trace.append([traceEnd, "PRE_ALL"]) + trace.append([traceEnd, "PREA"]) bankCounter = 0 bankTime = [] @@ -362,7 +362,7 @@ def bank_overlap_ratio(connection): print("Unexpected ACT. bankCounter was {0} valid range is python range {1}".format(bankCounter, validBankRange)) elif t[1] == "ACTB": actbCnt += 1 - elif(t[1] == "PRE_ALL"): + elif(t[1] == "PREA"): bankCounter = 0 elif(t[1] == "PRE"): if (bankCounter > 0): @@ -403,7 +403,7 @@ def bank_overlap_ratio(connection): # @metric # def number_of_precharges(connection): # cursor = connection.cursor() -# cursor.execute("SELECT COUNT(*) FROM Phases WHERE PhaseName IN ('PRE','PRE_ALL','RDA','WRA')") +# cursor.execute("SELECT COUNT(*) FROM Phases WHERE PhaseName IN ('PRE','PREA','RDA','WRA')") # result = cursor.fetchone() # return result[0] diff --git a/DRAMSys/traceAnalyzer/scripts/tests.py b/DRAMSys/traceAnalyzer/scripts/tests.py index 6b2877ca..eea095bd 100755 --- a/DRAMSys/traceAnalyzer/scripts/tests.py +++ b/DRAMSys/traceAnalyzer/scripts/tests.py @@ -233,9 +233,9 @@ def commandbus_slots_are_used_once(connection): cursor = connection.cursor() if (dramconfig.bankwiseLogic == "1"): - excludedPhases = "('REQ','RESP','PRE_ALL')" + excludedPhases = "('REQ','RESP','PREA')" else: - excludedPhases = "('REQ','RESP','PRE_ALL','PDNA','PDNP','SREF','REFA')" + excludedPhases = "('REQ','RESP','PREA','PDNA','PDNP','SREF','REFA')" query = """SELECT PhaseBegin,count FROM (SELECT phaseBegin,count(phasebegin) AS count FROM Phases WHERE PhaseName NOT IN """ + excludedPhases + """ AND phasebegin>0 GROUP BY phaseBegin) WHERE count>1""" @@ -258,7 +258,7 @@ def phase_transitions_are_valid(connection): if (dramconfig.bankwiseLogic == "1"): validTransitions['PRE'] = set(['ACT', 'REFB', 'SREFB']) - validTransitions['ACT'] = set(['RD', 'RDA', 'WR', 'WRA', 'PRE', 'PRE_ALL']) + validTransitions['ACT'] = set(['RD', 'RDA', 'WR', 'WRA', 'PRE', 'PREA']) validTransitions['RD'] = set(['PRE', 'RD', 'RDA', 'WR', 'WRA', 'PDNAB']) validTransitions['WR'] = set(['PRE', 'RD', 'RDA', 'WR', 'WRA', 'PDNAB']) @@ -271,20 +271,20 @@ def phase_transitions_are_valid(connection): validTransitions['PDNPB'] = set(['ACT', 'REFB', 'SREFB']) validTransitions['SREFB'] = set(['ACT', 'REFB']) else: - validTransitions['PRE'] = set(['ACT', 'PRE_ALL', 'REFA']) - validTransitions['PRE_ALL'] = set(['REFA', 'SREF']) - validTransitions['ACT'] = set(['RD', 'RDA', 'WR', 'WRA', 'PRE_ALL']) + validTransitions['PRE'] = set(['ACT', 'PREA', 'REFA']) + validTransitions['PREA'] = set(['REFA', 'SREF']) + validTransitions['ACT'] = set(['RD', 'RDA', 'WR', 'WRA', 'PREA']) - validTransitions['RD'] = set(['PRE', 'PRE_ALL', 'RD', 'RDA', 'WR', 'WRA', 'PDNA']) - validTransitions['WR'] = set(['PRE', 'PRE_ALL', 'RD', 'RDA', 'WR', 'WRA', 'PDNA']) - validTransitions['RDA'] = set(['PRE_ALL', 'ACT', 'REFA', 'PDNA', 'PDNP']) - validTransitions['WRA'] = set(['PRE_ALL', 'ACT', 'REFA', 'PDNA', 'PDNP']) + validTransitions['RD'] = set(['PRE', 'PREA', 'RD', 'RDA', 'WR', 'WRA', 'PDNA']) + validTransitions['WR'] = set(['PRE', 'PREA', 'RD', 'RDA', 'WR', 'WRA', 'PDNA']) + validTransitions['RDA'] = set(['PREA', 'ACT', 'REFA', 'PDNA', 'PDNP']) + validTransitions['WRA'] = set(['PREA', 'ACT', 'REFA', 'PDNA', 'PDNP']) - validTransitions['REFA'] = set(['PRE_ALL', 'ACT', 'REFA', 'PDNA', 'PDNP', 'SREF']) + validTransitions['REFA'] = set(['PREA', 'ACT', 'REFA', 'PDNA', 'PDNP', 'SREF']) - validTransitions['PDNA'] = set(['PRE', 'PRE_ALL', 'ACT', 'RD', 'RDA', 'WR', 'WRA', 'REFA', 'PDNA', 'PDNP']) - validTransitions['PDNP'] = set(['PRE_ALL', 'ACT', 'REFA', 'PDNA', 'PDNP', 'SREF']) - validTransitions['SREF'] = set(['PRE_ALL', 'ACT', 'REFA', 'PDNA', 'PDNP']) + validTransitions['PDNA'] = set(['PRE', 'PREA', 'ACT', 'RD', 'RDA', 'WR', 'WRA', 'REFA', 'PDNA', 'PDNP']) + validTransitions['PDNP'] = set(['PREA', 'ACT', 'REFA', 'PDNA', 'PDNP', 'SREF']) + validTransitions['SREF'] = set(['PREA', 'ACT', 'REFA', 'PDNA', 'PDNP']) if (dramconfig.bankwiseLogic == "1"): query = """SELECT @@ -294,13 +294,13 @@ def phase_transitions_are_valid(connection): WHERE (TBank=:bank) AND PhaseName NOT IN ('REQ','RESP') ORDER BY PhaseBegin""" else: - # REFA, PRE_ALL, PDNA, PDNP and SREF are attributed to Bank 0 therefore this must be added to the order evaluation: + # REFA, PREA, PDNA, PDNP and SREF are attributed to Bank 0 therefore this must be added to the order evaluation: query = """SELECT PhaseName, phases.ID FROM phases INNER JOIN transactions ON phases.transact=transactions.ID WHERE - ((TBank=:bank) OR PhaseName IN ('PRE_ALL', 'SREF', 'PDNP', 'PDNA', 'REFA')) + ((TBank=:bank) OR PhaseName IN ('PREA', 'SREF', 'PDNP', 'PDNA', 'REFA')) AND PhaseName NOT IN ('REQ','RESP') ORDER BY PhaseBegin""" for bankNumber in range(dramconfig.numberOfBanks): @@ -321,14 +321,14 @@ def timing_constraint(FirstPhase, SecondPhase): FirstPhaseName = FirstPhase[0] SecondPhaseName = SecondPhase[0] - if ((FirstPhaseName == "PRE" or FirstPhaseName == "PRE_ALL") and SecondPhaseName != "PRE_ALL"): + if ((FirstPhaseName == "PRE" or FirstPhaseName == "PREA") and SecondPhaseName != "PREA"): return dramconfig.tRP elif (FirstPhaseName == "ACT"): return dramconfig.tRCD elif (FirstPhaseName == "RD"): - if (SecondPhaseName in ["PRE, PRE_ALL"]): + if (SecondPhaseName in ["PRE, PREA"]): return dramconfig.tRTP elif (SecondPhaseName in ["RD, RDA"]): return max(dramconfig.tCCD_L, getReadAccessTime()) @@ -338,7 +338,7 @@ def timing_constraint(FirstPhase, SecondPhase): return dramconfig.tRL + getReadAccessTime() + dramconfig.clk elif (FirstPhaseName == "WR"): - if (SecondPhaseName in ["PRE, PRE_ALL", "PDNA"]): + if (SecondPhaseName in ["PRE, PREA", "PDNA"]): return dramconfig.tWL + dramconfig.getWriteAccessTime() + dramconfig.tWR elif (SecondPhaseName in ["RD, RDA"]): return dramconfig.tWL + dramconfig.getWriteAccessTime() + dramconfig.tWTR_L @@ -346,13 +346,13 @@ def timing_constraint(FirstPhase, SecondPhase): return max(dramconfig.tCCD_L, burstlength/dramconfig.dataRate) elif (FirstPhaseName == "RDA"): - if (SecondPhaseName in ["ACT", "PRE_ALL", "REFA"]): + if (SecondPhaseName in ["ACT", "PREA", "REFA"]): return dramconfig.tRTP + dramconfig.tRP elif (SecondPhaseName in ["PDNA", "PDNP"]): return dramconfig.tRL + getReadAccessTime() + dramconfig.clk elif (FirstPhaseName == "WRA"): - if (SecondPhaseName in ["ACT", "PRE_ALL", "REFA"]): + if (SecondPhaseName in ["ACT", "PREA", "REFA"]): return dramconfig.tWL + getWriteAccessTime() + dramconfig.tWR + dramconfig.tRP elif (SecondPhaseName in ["PDNA", "PDNP"]): return dramconfig.tWL + dramconfig.getWriteAccessTime() + dramconfig.tWR + dramconfig.clk @@ -390,7 +390,7 @@ def timing_constraits_on_the_same_bank_hold(connection): AND PhaseName NOT IN ('REQ','RESP') ORDER BY PhaseBegin""" else: query = """SELECT PhaseName, phases.ID, PhaseBegin, PhaseEnd FROM phases INNER JOIN transactions ON phases.transact=transactions.ID - WHERE ((TBank=:bank) OR PhaseName IN ('PRE_ALL', 'SREF', 'PDNP', 'PDNA', 'REFA')) AND PhaseName NOT IN ('REQ','RESP') ORDER BY PhaseBegin""" + WHERE ((TBank=:bank) OR PhaseName IN ('PREA', 'SREF', 'PDNP', 'PDNA', 'REFA')) AND PhaseName NOT IN ('REQ','RESP') ORDER BY PhaseBegin""" for bankNumber in range(dramconfig.numberOfBanks): cursor.execute(query, {"bank": bankNumber}) lastRow = cursor.fetchone() @@ -416,21 +416,21 @@ def row_buffer_is_used_correctly(connection): FROM phases INNER JOIN transactions ON phases.transact=transactions.ID WHERE - ((TBank=:bank) OR (PhaseNAME = "REFA" AND TBank=0) OR (PhaseNAME = "PRE_ALL" AND TBank=0)) + ((TBank=:bank) OR (PhaseNAME = "REFA" AND TBank=0) OR (PhaseNAME = "PREA" AND TBank=0)) AND PhaseName NOT IN ('REQ','RESP') ORDER BY PhaseBegin""" else: - # REFA, PRE_ALL, PDNA, PDNP and SREF are stored to bank0 for all the other banks we have also to grep this command: - # PhaseName IN ('PRE_ALL', 'SREF', 'PDNP', 'PDNA', 'REFA') + # REFA, PREA, PDNA, PDNP and SREF are stored to bank0 for all the other banks we have also to grep this command: + # PhaseName IN ('PREA', 'SREF', 'PDNP', 'PDNA', 'REFA') query = """SELECT PhaseName, phases.ID FROM phases INNER JOIN transactions ON phases.transact=transactions.ID WHERE - ((TBank=:bank) OR PhaseName IN ('PRE_ALL', 'SREF', 'PDNP', 'PDNA', 'REFA')) + ((TBank=:bank) OR PhaseName IN ('PREA', 'SREF', 'PDNP', 'PDNA', 'REFA')) AND PhaseName NOT IN ('REQ','RESP') ORDER BY PhaseBegin""" # phases that precharge the bank and close the rowbuffer - prechargingPhases = set(['PRE', 'PRE_ALL', 'RDA', 'WRA']) + prechargingPhases = set(['PRE', 'PREA', 'RDA', 'WRA']) # phases that require the bank to be in active state and the rowbuffer to be opened accessingPhases = set(['RD', 'RDA', 'WR', 'WRA', 'PRE'])