Esempio n. 1
0
        /**
         * Constructor
         */
        protected AbstractMemSched(int buf_size, Bank[] bank)
        {
            //parameters
            bank_max      = bank.Length; //shared MC see global, non-shared
            this.buf_size = buf_size;
            shared_size   = buf_size - Config.N * Config.memory.buf_size_per_proc;
            Debug.Assert(shared_size >= 0);

            //components
            this.bank = bank;
            buf       = new MemoryRequest[bank_max, buf_size];
            buf_load  = new int[bank_max];

            //load
            cur_load        = 0;
            cur_nonwb_load  = 0;
            cur_shared_load = 0;

            //load per proc
            cur_load_per_proc     = new int[Config.N];
            cur_load_per_procbank = new int[Config.N, bank_max];

            cur_nonwb_per_proc     = new int[Config.N];
            cur_nonwb_per_procbank = new int[Config.N, bank_max];

            bankRank          = new int[Config.N];
            bankRankPerThread = new int[Config.memory.mem_max * Config.memory.bank_max_per_mem, Config.N];

            //max-load per proc
            cur_max_load_per_proc = new int[Config.N];

            //helper
            helper = new MemSchedHelper(bank, bank_max, cur_max_load_per_proc);

            //stat
            stat = new MemSchedStat(Config.N, bank, bank_max);
        }
Esempio n. 2
0
        /**
         * Constructor
         */
        protected AbstractMemSched(int buf_size, Bank[] bank)
        {
            //parameters
            bank_max = bank.Length; //shared MC see global, non-shared
            this.buf_size = buf_size;
            shared_size = buf_size - Config.N * Config.memory.buf_size_per_proc;
            Debug.Assert(shared_size >= 0);

            //components
            this.bank = bank;
            buf = new MemoryRequest[bank_max, buf_size];
            buf_load = new int[bank_max];

            //load
            cur_load = 0;
            cur_nonwb_load = 0;
            cur_shared_load = 0;

            //load per proc
            cur_load_per_proc = new int[Config.N];
            cur_load_per_procbank = new int[Config.N, bank_max];

            cur_nonwb_per_proc = new int[Config.N];
            cur_nonwb_per_procbank = new int[Config.N, bank_max];

              bankRank = new int[Config.N];
              bankRankPerThread = new int[Config.memory.mem_max * Config.memory.bank_max_per_mem,Config.N];

            //max-load per proc
            cur_max_load_per_proc = new int[Config.N];

            //helper
            helper = new MemSchedHelper(bank, bank_max, cur_max_load_per_proc);

            //stat
            stat = new MemSchedStat(Config.N, bank, bank_max);
        }