diff --git a/main.py b/main.py index f18536ca0e2395f3ba68165ad18d685096359d5a..d18666dcb976102f01c72ccd7ee263e808173192 100644 --- a/main.py +++ b/main.py @@ -47,15 +47,6 @@ class CacheSimulator(): """ Program main. """ - # print('\n') - # print('main():') - # print(' s: {0}'.format(s)) - # print(' E: {0}'.format(E)) - # print(' b: {0}'.format(b)) - # print(' file_name: {0}'.format(file_name)) - # print(' verbose: {0}'.format(verbose)) - # print('') - if verbose: self.verbose = True @@ -70,8 +61,6 @@ class CacheSimulator(): # self.M = int(math.pow(2, self.m)) self.M = int(math.pow(2, 64)) - # self.debug_print() - # Create cache object. self.cache = [] self.access_log = [] @@ -87,25 +76,9 @@ class CacheSimulator(): 'block': [], }) - # # Display initial cache. - # self.print_cache() - # print('\n\n') - # Run simulation on cache, using file. self.run_simulation(file_name) - def debug_print(self): - print('\n') - print('Debug Info:') - print(' s: {0}'.format(self.s)) - print(' S: {0}'.format(self.S)) - print(' e: {0}'.format(self.e)) - print(' E: {0}'.format(self.E)) - print(' b: {0}'.format(self.b)) - print(' B: {0}'.format(self.B)) - print(' verbose: {0}'.format(self.verbose)) - print('') - def run_simulation(self, file_name): """ Runs full simulation of cache, using given input file. @@ -114,18 +87,13 @@ class CacheSimulator(): self.hits = 0 self.misses = 0 self.evictions = 0 - self.line = 0 # Open file to read in values. with open(file_name) as file: # Read in line. for line in file: - self.line += 1 if line.strip() != '': - # print('line: {0} {1}'.format(self.line, line)) self.handle_line(line) - # self.print_cache() - # print('\n') print('hits:{0} misses:{1} evictions:{2}'.format(self.hits, self.misses, self.evictions)) @@ -181,19 +149,11 @@ class CacheSimulator(): set_mask = ((self.S << block_offset) - 1) ^ block_mask set_offset = self.s tag_mask = (self.M - 1) ^ set_mask ^ block_mask - # print('full_mask: {0} As Bits: {0:b}'.format(self.M - 1)) - # print('block_mask: {0} As Bits: {0:b}'.format(block_mask)) - # print('set_mask: {0} As Bits: {0:b}'.format(set_mask)) - # print('tag_mask: {0} As Bits: {0:b}'.format(tag_mask)) # Use masks to get address chunks. parsed_data['block'] = address & block_mask parsed_data['set'] = (address & set_mask) >> block_offset parsed_data['tag'] = (address & tag_mask) >> (block_offset + set_offset) - # print('address: {0} As Bits: {0:b}'.format(address)) - # print('block: {0} As Bits: {0:b}'.format(parsed_data['block'])) - # print('set: {0} As Bits: {0:b}'.format(parsed_data['set'])) - # print('tag: {0} As Bits: {0:b}'.format(parsed_data['tag'])) # Check which of 3 operations apply. if split_line[1] == 'L': @@ -318,14 +278,9 @@ class CacheSimulator(): self.cache[set][index]['tag'] = tag # Set block values that are "loaded" into memory. - # print('b: {0} As Bits: {0:b}'.format(self.b)) - # print('B: {0} As Bits: {0:b}'.format(self.B)) lower_offset = int(address / self.B) * self.B upper_offset = (int(address / self.B) + 1) * self.B value_offset = address + value_size - # print('lower_offset: {0}'.format(lower_offset)) - # print('upper_offset: {0}'.format(upper_offset)) - # print('value_offset: {0}'.format(value_offset)) self.cache[set][index]['block'] = [] for i in range(self.B): self.cache[set][index]['block'].append(lower_offset + i) @@ -410,8 +365,6 @@ class CacheSimulator(): if __name__ == '__main__': - # print('Starting program.') - # Define our argparser and get command line args. parser = argparse.ArgumentParser(description='Cache Simulator') parser.add_argument('-v', '-V', action='store_true', default=False, help='Flag for verbose mode.', dest='verbose') @@ -423,5 +376,3 @@ if __name__ == '__main__': # If args parsed properly, run program main. CacheSimulator().main(int(args.set_count), int(args.line_count), int(args.block_size), args.file_name, args.verbose) - - # print('Terminating program.')