예제 #1
0
        //constructor
        public Bank2(MemCtrl2 mc, Rank2 rank, uint bid)
        {
            this.cid = mc.cid;
            this.rid = rank.rid;
            this.bid = bid;

            this.mc    = mc;
            curr_rowid = -1;   //closed-row
        }
예제 #2
0
 //constructor
 public Channel2(MemCtrl2 mc, uint rmax, uint bmax)
 {
     this.cid  = mc.cid;
     this.mc   = mc;
     this.rmax = rmax;
     ranks     = new Rank2[rmax];
     for (uint i = 0; i < ranks.Length; i++)
     {
         ranks[i] = new Rank2(mc, this, i, bmax);
     }
 }
예제 #3
0
 private void set_banks()
 {
     banks = new List <Bank2>();
     foreach (MemCtrl2 mc in this.mctrls)
     {
         Channel2 chan = mc.chan;
         for (uint r = 0; r < chan.rmax; r++)
         {
             Rank2 rank = chan.ranks[r];
             for (uint b = 0; b < rank.bmax; b++)
             {
                 Bank2 bank = rank.banks[b];
                 banks.Add(bank);
             }
         }
     }
 }
예제 #4
0
        //constructor
        public BLPTracker2(MemCtrl2[] mctrls)
        {
            this.mctrls = mctrls;

            //banks
            banks = new List <Bank2>();
            foreach (MemCtrl2 mc in this.mctrls)
            {
                Channel2 chan = mc.chan;
                for (uint r = 0; r < chan.rmax; r++)
                {
                    Rank2 rank = chan.ranks[r];
                    for (uint b = 0; b < rank.bmax; b++)
                    {
                        Bank2 bank = rank.banks[b];
                        banks.Add(bank);
                    }
                }
            }

            //blp
            blp_perproc = new int[Config.N];
        }