/** * 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); }
/** * 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); }