DIRECTORY AssociativeCache, CacheModels, Commander, Convert, DirectMapCache, Dragoman, Rope; DragomanSpinifexRuns: CEDAR PROGRAM IMPORTS AssociativeCache, DirectMapCache, Commander, Dragoman, Rope SHARES Dragoman = BEGIN TwoToTheTwo: PROC[n: INT] RETURNS[INT] = { IF n=0 THEN RETURN[1] ELSE RETURN[2*TwoToTheTwo[n-1]]}; MarkSpinifexGFIs: PROC [handle: Dragoman.Handle] = { Dragoman.MarkGFI[handle, "SpinifexStarter"]; Dragoman.MarkGFI[handle, "ProcessPropsImpl", "InterpreterImpl", "InterpreterPrivateImpl", "EvaluateImpl", "AMEventsImpl", "InterpreterTool"]; Dragoman.MarkGFI[handle, "TerminalIOImpl", "ChipNDalePackage", "CDCMosPackage", "CornerStitchingImpl", "SXPackage", "SXCMosPackage"]; }; DragomanSpinifexRunsGo: Commander.CommandProc = { BEGIN rc, mc: CacheModels.Cache; handle: Dragoman.Handle _ Dragoman.Start[backingFile: Rope.Cat["SimSpin.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 MarkSpinifexGFIs[handle]; Dragoman.Run[handle, "DragomanStartSpinifex"] ; 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["SimSpin.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 MarkSpinifexGFIs[handle]; Dragoman.Run[handle, "DragomanStartSpinifex"] ; 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["SimSpin.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 MarkSpinifexGFIs[handle]; Dragoman.Run[handle, "DragomanStartSpinifex"] ; 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["SimSpin.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 MarkSpinifexGFIs[handle]; Dragoman.Run[handle, "DragomanStartSpinifex"] ; 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["SimSpin.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 MarkSpinifexGFIs[handle]; Dragoman.Run[handle, "DragomanStartSpinifex"] ; rc.print[rc, handle.tsOut, "Real cache"]; mc.print[mc, handle.tsOut, "Map cache"]; Dragoman.End[handle]; END; }; Commander.Register["DragomanSpinifexRunsGo", DragomanSpinifexRunsGo, "Starts a series of runs of Dragoman simulating Spinifex"]; END. φDragomanSpinifexRuns.mesa Created by Bertrand Serlet, July 28, 1985 10:55:53 pm PDT Last Edited by: Serlet, April 26, 1985 11:40:41 pm PST Last Edited by: Sindhu, May 2, 1985 0:20:55 am PDT Pradeep Sindhu October 20, 1985 0:13:00 am PDT ΚA˜code– "Cedar" stylešœ™K™9K™6—™2K™.—šΟk ˜ KšœR˜R—K™šœœœ˜$Kšœ<˜CKšœ ˜Kš˜š Οn œœœœœ˜*Kš œœœœœ˜7—K˜šžœœ˜4Jšœ,˜,Jšœ˜Jšœ…˜…—K˜K˜K˜šΟbœ˜1š˜K˜Kšœg˜gKšœ;Οc ˜HJšœN  ˜ZJšœŒœ! ˜ΖJšœ…œ!  ˜ΈJ˜K˜Kšœ/˜/Kšœ)˜)Kšœ(˜(Kšœ˜Kšœ˜—K˜š˜K˜Kšœg˜gKšœ;  ˜HJšœN  ˜ZJšœŒœ! ˜ΖJšœ…œ!  ˜ΈJ˜K˜Kšœ/˜/Kšœ)˜)Kšœ(˜(Kšœ˜Kšœ˜—K˜š˜K˜Kšœf˜fKšœ;  ˜HJšœN  ˜ZJšœ‹œ! ˜ΕJšœ„œ!  ˜·J˜K˜Kšœ/˜/Kšœ)˜)Kšœ(˜(Kšœ˜Kšœ˜—K˜š˜K˜Kšœg˜gKšœ;  ˜HJšœN  ˜ZJšœŒœ! ˜ΖJšœ…œ!  ˜ΈJ˜K˜Kšœ/˜/Kšœ)˜)Kšœ(˜(Kšœ˜Kšœ˜—K˜š˜K˜Kšœf˜fKšœ;  ˜HJšœN  ˜ZJšœ‹œ! ˜ΕJšœ„œ!  ˜·J˜K˜Kšœ/˜/Kšœ)˜)Kšœ(˜(Kšœ˜Kšœ˜—K˜Kšœ˜—K˜Kšœ€˜€Kšœ˜—K˜—…—x―