Exemple #1
0
    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();
    }
Exemple #2
0
    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);
    }