예제 #1
0
]
processors = []
cachePossibilities = [512, 1024, 2048, 4096, 8192, 16384, 32768]
blockSizePossibilities = [32, 64, 128, 256, 512, 1024]
associativityPossibilites = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
for cache in cachePossibilities:
    for blockSize in blockSizePossibilities:
        for associativity in associativityPossibilites:
            for bench in Benchmarks:
                if cache > blockSize * associativity * 8:
                    processor = Processor(
                        Cache(cache, blockSize, associativity),
                        Cache(cache, blockSize, associativity))
                    processor.runSimCache("simplesim-3.0/sim-cache",
                                          "temp.txt", bench)
                    processor.runCacti("cacti65/cacti", "cacti65/cache.cfg",
                                       "cacti65/cacheImmutable.cfg")
                    processor.dataCache.printCache()
                    processors.append(processor)
out = open("out.csv", "w")
out.write(
    "Benchmark, Cache size, Block Size, Associativity, Cache Latency, Cache Energy, Data Hits, Data Misses, Writebacks, Instructions Hits, Instruction Misses\n"
)
for proc in processors:
    i = 0
    out.write("%d,%d,%d,%d,%f,%f,%d,%d,%d,%d,%d\n" %
              (i % 4, proc.dataCache.cacheSize, proc.dataCache.blockSize,
               proc.dataCache.associativity, proc.dataCache.cacheLatency,
               proc.dataCache.cacheEnergy, proc.dataCache.hits,
               proc.dataCache.misses, proc.dataCache.writebacks,
               proc.instructionCache.hits, proc.instructionCache.misses))
    i += 1