public static void OutBIPDirectoryMemory(int nodeCount, int l1, int l2, float multiplyFactor, string filesysSeperator, string filenameAddition) { string outputString = "memoryConfigs" + filesysSeperator + filenameAddition + "bip-p" + nodeCount + "-c" + l1 + "L1-" + l2 + "L2.memory"; output = new System.IO.StreamWriter(outputString); index = 1; output.WriteLine("Begin"); //MainMemory(400, 300); NetworkTimingData myNetworkTimingData = GetNetworkTimingData(nodeCount, multiplyFactor); int randomMin = myNetworkTimingData.randomMin; int randomMax = myNetworkTimingData.randomMax; AddOriginNetwork("Network", nodeCount, randomMin, randomMax, PER_PACKET); //AddNetworkMemoryInterface("NMInt", nodeCount + 10); l1 *= 1024; l2 *= 1024; for (int i = 0; i < nodeCount; i++) { AddSESCInterface("ProcessorInterface_" + i); AddBIPCache("L1_" + i, 4, l1 / (4 * 64), 64, 2, 1, EvictionPolicy.LRU); // AddCache("L2_" + i, 4, l2 / (4 * 64), 64, 7, 4, EvictionPolicy.LRU); AddBIPCache("L2_" + i, 4, l2 / (4 * 64), 64, 13, 10, EvictionPolicy.LRU); //AddOriginDirectory("OriginDirectory_" + i, nodeCount, i, nodeCount + 10); AddBIPDirectory("BIPDirectory_" + i, nodeCount, i); AddMainMemory("MainMemory_" + i, 57, 66); Connection("ProcessorInterface_" + i, "L1_" + i, "Connection", "LocalConnection", 0); Connection("L1_" + i, "L2_" + i, "RemoteConnection", "LocalConnection", 0); Connection("L2_" + i, "BIPDirectory_" + i, "RemoteConnection", "LocalCacheConnection", 0); Connection("MainMemory_" + i, "BIPDirectory_" + i, "RemoteConnection", "LocalMemoryConnection", 0); Connection("BIPDirectory_" + i, "Network", "RemoteConnection", "Connection_" + i, 0); } //Connection("Network", "NMInt", "MemoryConnection", "NetworkConnection", 0); //Connection("NMInt", "MainMemory", "MemoryConnection", "Remoteconnection", 0); output.WriteLine("End"); output.Close(); }
public static NetworkTimingData GetNetworkTimingData(int nodeCount, float multiplyFactor) { NetworkTimingData _ret = new NetworkTimingData(); switch (nodeCount) { case 4: _ret.randomMin = 100; _ret.randomMax = 110; //_ret.randomMax = 116; break; case 8: _ret.randomMin = 131; _ret.randomMax = 145; //_ret.randomMax = 152; break; case 16: _ret.randomMin = 135; _ret.randomMax = 149; //_ret.randomMax = 156; break; case 32: _ret.randomMin = 143; _ret.randomMax = 159; //_ret.randomMax = 166; break; case 64: _ret.randomMin = 161; _ret.randomMax = 177; //_ret.randomMax = 186; break; case 128: _ret.randomMin = 175; _ret.randomMax = 193; //_ret.randomMax = 202; break; default: _ret.randomMin = 57; _ret.randomMax = 66; break; } _ret.randomMin = 100; _ret.randomMax = 110; float tempMin = _ret.randomMin; float tempMax = _ret.randomMax; tempMin *= multiplyFactor; tempMax *= multiplyFactor; if (tempMin == 0 && tempMax == 0) { tempMax = 1; } _ret.randomMin = (int)tempMin; _ret.randomMax = (int)tempMax; return(_ret); }