DragomanRichardsRuns.mesa
Created by Pradeep Sindhu, October 22, 1985 2:25:01 am PDT
DIRECTORY
AssociativeCache, CacheModels, Commander, Convert, DirectMapCache, Dragoman, Rope;
DragomanRichardsRuns: CEDAR PROGRAM
IMPORTS AssociativeCache, DirectMapCache, Commander, Dragoman, Rope =
BEGIN
MarkRichardsGFIs: PROC [handle: Dragoman.Handle] = {
Dragoman.MarkGFI[handle, "Richards", "RichardsStarter"];
};
DragomanRichardsRunsGo: Commander.CommandProc = {
BEGIN
rc, mc: CacheModels.Cache;
handle: Dragoman.Handle ← Dragoman.Start[backingFile: Rope.Cat["SimRichards.100.1.ts"], instr: 1, data: 1];
rc ← DirectMapCache.NewCache[lines: 512, quadsPerLine: 8]; -- real cache
mc ← AssociativeCache.NewCache[lines: 256, quadsPerLine: 4, wordsPerQuad: 1]; -- map cache
Dragoman.SetInstructionCache[handle: handle, number: 0, cache: AssociativeCache.NewCache[lines: 100, wordsPerQuad: 4, quadsPerLine: 1, lru: FALSE, realCache: rc, mapCache: mc]]; -- instruction cache
Dragoman.SetDataCache[handle: handle, number: 0, cache: AssociativeCache.NewCache[lines: 100, wordsPerQuad: 4, quadsPerLine: 1, lru: FALSE, realCache: rc, mapCache: mc]]; -- data cache
MarkRichardsGFIs[handle];
Dragoman.Run[handle, "DragomanStartRichards"];
rc.print[rc, handle.tsOut, "Real cache"];
mc.print[mc, handle.tsOut, "Map cache"];
Dragoman.End[handle];
END;
BEGIN
rc, mc: CacheModels.Cache;
handle: Dragoman.Handle ← Dragoman.Start[backingFile: Rope.Cat["SimRichards.128.1.ts"], instr: 1, data: 1];
rc ← DirectMapCache.NewCache[lines: 512, quadsPerLine: 8]; -- real cache
mc ← AssociativeCache.NewCache[lines: 256, quadsPerLine: 4, wordsPerQuad: 1]; -- map cache
Dragoman.SetInstructionCache[handle: handle, number: 0, cache: AssociativeCache.NewCache[lines: 128, wordsPerQuad: 4, quadsPerLine: 1, lru: FALSE, realCache: rc, mapCache: mc]]; -- instruction cache
Dragoman.SetDataCache[handle: handle, number: 0, cache: AssociativeCache.NewCache[lines: 128, wordsPerQuad: 4, quadsPerLine: 1, lru: FALSE, realCache: rc, mapCache: mc]]; -- data cache
MarkRichardsGFIs[handle];
Dragoman.Run[handle, "DragomanStartRichards"];
rc.print[rc, handle.tsOut, "Real cache"];
mc.print[mc, handle.tsOut, "Map cache"];
Dragoman.End[handle];
END;
BEGIN
rc, mc: CacheModels.Cache;
handle: Dragoman.Handle ← Dragoman.Start[backingFile: Rope.Cat["SimRichards.50.2.ts"], instr: 1, data: 1];
rc ← DirectMapCache.NewCache[lines: 512, quadsPerLine: 8]; -- real cache
mc ← AssociativeCache.NewCache[lines: 256, quadsPerLine: 4, wordsPerQuad: 1]; -- map cache
Dragoman.SetInstructionCache[handle: handle, number: 0, cache: AssociativeCache.NewCache[lines: 50, wordsPerQuad: 4, quadsPerLine: 2, lru: FALSE, realCache: rc, mapCache: mc]]; -- instruction cache
Dragoman.SetDataCache[handle: handle, number: 0, cache: AssociativeCache.NewCache[lines: 50, wordsPerQuad: 4, quadsPerLine: 2, lru: FALSE, realCache: rc, mapCache: mc]]; -- data cache
MarkRichardsGFIs[handle];
Dragoman.Run[handle, "DragomanStartRichards"];
rc.print[rc, handle.tsOut, "Real cache"];
mc.print[mc, handle.tsOut, "Map cache"];
Dragoman.End[handle];
END;
BEGIN
rc, mc: CacheModels.Cache;
handle: Dragoman.Handle ← Dragoman.Start[backingFile: Rope.Cat["SimRichards.100.2.ts"], instr: 1, data: 1];
rc ← DirectMapCache.NewCache[lines: 512, quadsPerLine: 8]; -- real cache
mc ← AssociativeCache.NewCache[lines: 256, quadsPerLine: 4, wordsPerQuad: 1]; -- map cache
Dragoman.SetInstructionCache[handle: handle, number: 0, cache: AssociativeCache.NewCache[lines: 100, wordsPerQuad: 4, quadsPerLine: 2, lru: FALSE, realCache: rc, mapCache: mc]]; -- instruction cache
Dragoman.SetDataCache[handle: handle, number: 0, cache: AssociativeCache.NewCache[lines: 100, wordsPerQuad: 4, quadsPerLine: 2, lru: FALSE, realCache: rc, mapCache: mc]]; -- data cache
MarkRichardsGFIs[handle];
Dragoman.Run[handle, "DragomanStartRichards"];
rc.print[rc, handle.tsOut, "Real cache"];
mc.print[mc, handle.tsOut, "Map cache"];
Dragoman.End[handle];
END;
BEGIN
rc, mc: CacheModels.Cache;
handle: Dragoman.Handle ← Dragoman.Start[backingFile: Rope.Cat["SimRichards.50.4.ts"], instr: 1, data: 1];
rc ← DirectMapCache.NewCache[lines: 512, quadsPerLine: 8]; -- real cache
mc ← AssociativeCache.NewCache[lines: 256, quadsPerLine: 4, wordsPerQuad: 1]; -- map cache
Dragoman.SetInstructionCache[handle: handle, number: 0, cache: AssociativeCache.NewCache[lines: 50, wordsPerQuad: 4, quadsPerLine: 4, lru: FALSE, realCache: rc, mapCache: mc]]; -- instruction cache
Dragoman.SetDataCache[handle: handle, number: 0, cache: AssociativeCache.NewCache[lines: 50, wordsPerQuad: 4, quadsPerLine: 4, lru: FALSE, realCache: rc, mapCache: mc]]; -- data cache
MarkRichardsGFIs[handle];
Dragoman.Run[handle, "DragomanStartRichards"];
rc.print[rc, handle.tsOut, "Real cache"];
mc.print[mc, handle.tsOut, "Map cache"];
Dragoman.End[handle];
END;
};
Commander.Register["DragomanRichardsRunsGo", DragomanRichardsRunsGo, "Starts a series of runs of Dragoman simulating Richards"];
END.