#ifndef ENVIRONNEMENT_CACHE_PARAMETERS_H #define ENVIRONNEMENT_CACHE_PARAMETERS_H #include #include #include "Cache_MultiLevel_Parameters.h" namespace environnement { namespace cache { class Parameters { public : uint32_t nb_cache_dedicated; public : uint32_t nb_iport; public : cache_multilevel::Parameters ** param_icache_dedicated; public : cache_multilevel::Parameters ** param_dcache_dedicated; public : cache_multilevel::Parameters * param_cache_shared; public : Parameters (uint32_t nb_cache_dedicated , uint32_t * icache_dedicated_nb_level , uint32_t * icache_dedicated_nb_port , uint32_t ** icache_dedicated_nb_line , uint32_t ** icache_dedicated_size_line , uint32_t ** icache_dedicated_size_word , uint32_t ** icache_dedicated_associativity, uint32_t ** icache_dedicated_hit_latence , uint32_t ** icache_dedicated_miss_penality, uint32_t * dcache_dedicated_nb_level , uint32_t * dcache_dedicated_nb_port , uint32_t ** dcache_dedicated_nb_line , uint32_t ** dcache_dedicated_size_line , uint32_t ** dcache_dedicated_size_word , uint32_t ** dcache_dedicated_associativity, uint32_t ** dcache_dedicated_hit_latence , uint32_t ** dcache_dedicated_miss_penality, uint32_t cache_shared_nb_level , // uint32_t cache_shared_nb_port , uint32_t * cache_shared_nb_line , uint32_t * cache_shared_size_line , uint32_t * cache_shared_size_word , uint32_t * cache_shared_associativity , uint32_t * cache_shared_hit_latence , uint32_t * cache_shared_miss_penality ) { this->nb_cache_dedicated = nb_cache_dedicated; uint32_t cache_shared_nb_port = 0; uint32_t nb_iport = 0; for (uint32_t i=0; iprint(depth+1) << std::endl; for (uint32_t i=0; iprint(depth+1) << std::endl; str << tab << " * CACHE SHARED" << std::endl; str << param_cache_shared->print(depth+1) << std::endl; return str.str(); } friend std::ostream& operator<< (std::ostream& output, Parameters &x) { output << x.print(0); return output; } }; }; }; #endif