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. ^DragomanRichardsRuns.mesa Created by Pradeep Sindhu, October 22, 1985 2:25:01 am PDT Κε˜™J™:—J™codešΟk ˜ KšœR˜R—J™šΟbœœ˜#Kšœ?˜FJš˜J˜šΟnœœ˜4Jšœ8˜8—J˜J˜šžœ˜1š˜K˜Kšœk˜kKšœ;Οc ˜HJšœN  ˜ZJšœŒœ! ˜ΖJšœ…œ!  ˜ΈJ˜Kšœ˜Kšœ.˜.Kšœ)˜)Kšœ(˜(Kšœ˜Kšœ˜—K˜š˜K˜Kšœk˜kKšœ;  ˜HJšœN  ˜ZJšœŒœ! ˜ΖJšœ…œ!  ˜ΈJ˜Kšœ˜Kšœ.˜.Kšœ)˜)Kšœ(˜(Kšœ˜Kšœ˜—K˜š˜K˜Kšœj˜jKšœ;  ˜HJšœN  ˜ZJšœ‹œ! ˜ΕJšœ„œ!  ˜·J˜Kšœ˜Kšœ.˜.Kšœ)˜)Kšœ(˜(Kšœ˜Kšœ˜—K˜š˜K˜Kšœk˜kKšœ;  ˜HJšœN  ˜ZJšœŒœ! ˜ΖJšœ…œ!  ˜ΈJ˜Kšœ˜Kšœ.˜.Kšœ)˜)Kšœ(˜(Kšœ˜Kšœ˜—K˜š˜K˜Kšœj˜jKšœ;  ˜HJšœN  ˜ZJšœ‹œ! ˜ΕJšœ„œ!  ˜·J˜Kšœ˜Kšœ.˜.Kšœ)˜)Kšœ(˜(Kšœ˜Kšœ˜—K˜J˜—K˜Kšœ€˜€J˜Jšœ˜——…— O