#include "../include/Cache_OneLevel.h" namespace environment { namespace cache { namespace cache_onelevel { Cache_OneLevel::Cache_OneLevel (std::string name, Parameters * param) { this->name = name; this->param = param; access_port = new Access_Port [param->nb_port]; tag = new Tag * [param->nb_line/param->associativity]; for (uint32_t it = 0; it < param->nb_line/param->associativity; it ++) tag [it] = new Tag [param->associativity]; size_address.offset = (uint32_t) log2(param->size_line * param->size_word); size_address.familly = (uint32_t) log2(param->nb_line/param->associativity); size_address.tag = 32 - size_address.familly - size_address.offset; param_write_buffer = new queue::Parameters (2); write_buffer = new queue::Sort_Queue_Dynamic (name+"_write_buffer",param_write_buffer); } Cache_OneLevel::~Cache_OneLevel (void) { delete write_buffer; delete param_write_buffer; for (uint32_t it = 0; it < param->nb_line/param->associativity; it ++) delete [] tag [it]; delete [] tag; delete [] access_port; } }; }; };