Skip to content

Commit

Permalink
main memory finished
Browse files Browse the repository at this point in the history
  • Loading branch information
aomran94 committed Nov 7, 2016
1 parent 2530b4e commit 7ab5dfd
Showing 1 changed file with 47 additions and 0 deletions.
47 changes: 47 additions & 0 deletions src/memory/MainMemory.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package memory;

public class MainMemory extends Memory {

short[] memoryData;

public MainMemory(int size, int cycleAccessTime, boolean writePolicy, short blockSize) {
super(size, cycleAccessTime, false, blockSize);

memoryData = new short[size];
}

@Override
short[] read(short address, boolean firstLevel) {
short[] blockData = new short[blockSize];
int startAddress = (address/blockSize) * blockSize;

for(int i=0; i<blockSize; i++)
blockData[i] = memoryData[i+startAddress];

workCycles += cycleAccessTime;

return blockData;


}

@Override
void write(short address, Object data, boolean firstLevel) {
if(firstLevel){
memoryData[address] = (short)data;
}else
{
short[] blockData = (short[]) data;
int startAddress = (address/blockSize) * blockSize;

for(int i=0; i<blockSize; i++)
memoryData[i+startAddress] = blockData[i];

}

workCycles += cycleAccessTime;

}


}

0 comments on commit 7ab5dfd

Please sign in to comment.