static void Main(string[] args) { var sim = new Simulator(); var traceReader = new UsimmTraceReader(TraceFilename); var dram = new Dram(sim, 1, 4); var core = new Core(sim, traceReader, dram, 4, 192); while (sim.Now < SimCycles) { core.Tick(); dram.Tick(); sim.Tick(); } Console.WriteLine(core.InsnsRetired.ToString() + " instructions " + "retired in " + sim.Now.ToString() + " cycles"); }
public Dram(Simulator sim, int channelBits, int bankBits) { Sim = sim; ChannelBits = channelBits; BankBits = bankBits; BankLsb = RowSizeBits + channelBits; RowLsb = BankLsb + bankBits; ClockDivider = 4; tCCD = 4; tCL = 11; tRCD = 11; tRP = 11; tRAS = 28; int numChannels = 1 << ChannelBits; int numBanksPerChannel = 1 << BankBits; Channels = new ChannelState[numChannels]; for (int i = 0; i < Channels.Length; i++) { Channels[i] = new ChannelState(numBanksPerChannel); } }