Ejemplo n.º 1
0
        /**
         * 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];
        }
Ejemplo n.º 2
0
        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];
        }
Ejemplo n.º 3
0
        /**
         * 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];
        }