Exemple #1
0
        /**
         * Should be called if address is not in cache
         * and needs to be paged in
         */
        public void pageBlock(int address, MainMemory memory)
        {
            int frameLoc = randomFrame(setSize);
            Frame oldFrame = sets[findSet(address)].getFrameFromIndex(frameLoc);
            Frame frame = new Frame(address);
            frame.data = memory.addresses[address];

            //Old frame was written to and needs to be written back
            if(null != oldFrame && oldFrame.dirty)
            {
                memory.addresses[oldFrame.getTag()] = oldFrame.data;
            }
            sets[findSet(address)].replaceFrame(frameLoc, frame);
        }
Exemple #2
0
 public void replaceFrame(int index, Frame frame)
 {
     frames[index] = frame;
 }