예제 #1
0
        /**
         * Constructor
         */
        public Bank(MemSched sched, MemCtlr MC)
        {
            //bank id
            bank_id = bank_max;
            bank_max++;
            Console.WriteLine("bank" + '\t' + bank_id.ToString() + '\t' + MC.mem_id.ToString());

            //set scheduler
            this.sched = sched;

            //allocate stat
            stat = new BankStat(this);
            outstandingReqs_perapp = new ulong[Config.N];
            outstandingReqs        = 0;

            //initialize bank state
            state         = RowState.Closed;
            cur_row       = ulong.MaxValue;
            is_cur_marked = false;
            wait_left     = 0;

            this.MC = MC;

            lastOpen.Clear();
        }
예제 #2
0
        /**
         * Constructor
         */
        public Bank(MemSched sched, MemCtlr MC)
        {
            //bank id
            bank_id = bank_max;
            bank_max++;
            Console.WriteLine("bank" + '\t' + bank_id.ToString() + '\t' + MC.mem_id.ToString());

            //set scheduler
            this.sched = sched;

            //allocate stat
            stat = new BankStat(this);
            outstandingReqs_perapp = new ulong[Config.N];
            outstandingReqs = 0;

            //initialize bank state
            state = RowState.Closed;
            cur_row = ulong.MaxValue;
            is_cur_marked = false;
            wait_left = 0;

            this.MC = MC;

            lastOpen.Clear();
        }