Various fixes

- Don't use unordered sets for addressmapping
	- Don't use unordered sets for tracesetup
	- XOR bits weren't added
	- NoRefresh policy was fixed
This commit is contained in:
2021-11-09 15:24:19 +01:00
parent 71eed44060
commit bb0aba0758
5 changed files with 22 additions and 16 deletions

View File

@@ -39,7 +39,6 @@
#include "util.h"
#include <nlohmann/json.hpp>
#include <unordered_set>
namespace DRAMSysConfiguration
{
@@ -58,13 +57,13 @@ void from_json(const json &j, XorPair &x);
struct AddressMapping
{
Optional<std::unordered_set<unsigned int>> byteBits;
std::unordered_set<unsigned int> coloumnBits;
std::unordered_set<unsigned int> bankBits;
Optional<std::unordered_set<unsigned int>> bankGroupBits;
std::unordered_set<unsigned int> rowBits;
Optional<std::unordered_set<unsigned int>> channelBits;
Optional<std::unordered_set<unsigned int>> rankBits;
Optional<std::vector<unsigned int>> byteBits;
std::vector<unsigned int> coloumnBits;
std::vector<unsigned int> bankBits;
Optional<std::vector<unsigned int>> bankGroupBits;
std::vector<unsigned int> rowBits;
Optional<std::vector<unsigned int>> channelBits;
Optional<std::vector<unsigned int>> rankBits;
Optional<std::vector<XorPair>> xorBits;
};

View File

@@ -132,7 +132,7 @@ void from_json(const json &j, TraceSetup &c)
if (initiator_j.contains("maxPendingWriteRequests"))
initiator_j.at("maxPendingWriteRequests").get_to(initiator->maxPendingWriteRequests);
c.initiators.emplace(std::move(initiator));
c.initiators.emplace_back(std::move(initiator));
}
}

View File

@@ -40,7 +40,6 @@
#include <memory>
#include <nlohmann/json.hpp>
#include <unordered_set>
namespace DRAMSysConfiguration
{
@@ -103,7 +102,7 @@ struct TraceHammer : public TrafficInitiator
struct TraceSetup
{
std::unordered_set<std::shared_ptr<TrafficInitiator>> initiators;
std::vector<std::shared_ptr<TrafficInitiator>> initiators;
};
void to_json(json &j, const TraceSetup &c);

View File

@@ -153,11 +153,11 @@ std::unique_ptr<DRAMSysConfiguration::TraceHammer> getTraceHammer()
DRAMSysConfiguration::TraceSetup getTraceSetup()
{
std::unordered_set<std::shared_ptr<DRAMSysConfiguration::TrafficInitiator>> initiators;
initiators.emplace(getTracePlayer());
initiators.emplace(getTraceGeneratorRandom());
initiators.emplace(getTraceGeneratorSequential());
initiators.emplace(getTraceHammer());
std::vector<std::shared_ptr<DRAMSysConfiguration::TrafficInitiator>> initiators;
initiators.emplace_back(getTracePlayer());
initiators.emplace_back(getTraceGeneratorRandom());
initiators.emplace_back(getTraceGeneratorSequential());
initiators.emplace_back(getTraceHammer());
return DRAMSysConfiguration::TraceSetup{initiators};
}

View File

@@ -70,6 +70,14 @@ AddressDecoder::AddressDecoder(const DRAMSysConfiguration::AddressMapping &addre
std::copy(byteBits.begin(), byteBits.end(), std::back_inserter(vByteBits));
}
if (addressMapping.xorBits.isValid())
{
for (const auto &xorBit : addressMapping.xorBits.getValue())
{
vXor.emplace_back(xorBit.first, xorBit.second);
}
}
std::copy(addressMapping.bankBits.begin(), addressMapping.bankBits.end(), std::back_inserter(vBankBits));
std::copy(addressMapping.rowBits.begin(), addressMapping.rowBits.end(), std::back_inserter(vRowBits));
std::copy(addressMapping.coloumnBits.begin(), addressMapping.coloumnBits.end(), std::back_inserter(vColumnBits));