You will implement a Cache Simulator to evaluate different configurations of Caches, running it in different traces files. The followings are the requirements for the simulation: 1. 2. 3. 4. Simulate only one level cache: L1 The size of the cache, associativity and blocksize are parameterizable Replacement algorithm: LRU Implement write through cache and write back cache