/** * Constructor */ public BatchMemSchedHelper(BatchMemSched sched) { //pertaining to AbstractMemSched bank_max = sched.bank_max; bank = sched.bank; buf = sched.buf; buf_load = sched.buf_load; cur_load_per_proc = sched.cur_load_per_proc; cur_load_per_procbank = sched.cur_load_per_procbank; cur_max_load_per_proc = sched.cur_max_load_per_proc; //pertaining to BatchMemSched rank_to_proc = sched.rank_to_proc; proc_to_rank = sched.proc_to_rank; cur_marked_per_proc = sched.cur_marked_per_proc; //cur_period_marked_per_proc = sched.cur_period_marked_per_proc; cur_marked_per_procbank = sched.cur_marked_per_procbank; //cur_period_marked_per_procbank = sched.cur_period_marked_per_procbank; RBA_max = new int[Config.N]; RBA_total = new int[Config.N]; cur_bankproc = new int[bank_max]; block_req_per_bank = new int[bank_max]; //misc. virtual_marked_per_procbank = new int[Config.N, bank_max]; completion_time = new int[Config.N]; }
public ulong[] total_finished_batch_duration; //total batch duration, for batches in which a processor had at least one marked request /** * Constructor */ public BatchMemSchedStat(BatchMemSched sched) { //collect stats is_collect_stat = new bool[Config.N]; for (int p = 0; p < Config.N; p++) { is_collect_stat[p] = true; } //owning scheduler this.sched = sched; //serviced requests total_serviced = new ulong[Config.N]; total_serviced_marked = new ulong[Config.N]; //rank recomputation avg_load_recomp = new double[Config.N]; avg_max_load_recomp = new double[Config.N]; //marking (batch formulation) avg_marked_load_left_remark = new double[Config.N]; avg_load_remark = new double[Config.N]; avg_max_load_remark = new double[Config.N]; avg_max_marked_remark = new double[Config.N]; avg_marked_remark = new double[Config.N]; //finished batches total_finished_batch_cnt = new ulong[Config.N]; total_finished_batch_duration = new ulong[Config.N]; }