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:
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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};
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user