I have a question about the validity of a new block in the cache simulation, specifically about the allocateBlock(pkt, writebacks) function within the BaseCache class.
In the function definition, it is stated that “the allocateBlock(pkt, writebacks) function finds a victim block, prepares any necessary writebacks for existing data, and returns nullptr if there are no replaceable blocks. If a replaceable block is found, the new block is inserted in its place. However, it is mentioned that the new block is not set as valid yet.” My question revolves around the point at which the valid bit of the new block transitions to 1, indicating that the newly allocated block is valid. Despite updating the data in the new block using functions like access() (which references allocateBlock(pkt, writebacks)), the valid bit of the new block remains 0. When attempting to set the valid bit of the new block, I encountered the following error: gem5.opt: build/ARM/base/statistics.hh:1055: gem5::statistics::VectorBase<Derived, Stor>::Proxy gem5::statistics::VectorBase<Derived, Stor>::operator\[\] (gem5::statistics::off_type) \[with Derived = gem5::statistics::AverageVector; Stor = gem5::statistics::AvgStor; gem5::statistics::VectorBase<Derived, Stor>::Proxy = gem5::statistics::ScalarProxygem5::statistics::AverageVector; gem5::statistics::off_type = unsigned int\]: Assertion \`index < size()' failed. This error is related to the gem5/src/base/statistics.hh file: Proxy operator\[\](off_type index){ assert (index < size()); return Proxy(this->self(), index); } I am utilizing the classic cache in my simulations. Specifically, I would like to understand the appropriate method for setting the valid bit of the new block, as used in Gem5, and how to avoid the mentioned error when attempting to set the valid bit of an invalid block. Thank you very much for your attention to this matter. I sincerely appreciate your time and assistance, and I eagerly await your response. Zahra Moein
_______________________________________________ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org