C、C++或SystemC中的CPU缓存实现

3

我需要一份非常基础的CPU缓存C或C++源代码。谷歌没有帮助我找到一个合适的源代码。 实现只需要提供缓存最基本的功能。 例如,在C++中:

class Cache{
  ... //parameter setup of way, capacity, etc
  public: access(addr){
             miss=inspect(addr);
             if(miss){ fetch_mem(addr); replace_policy...;}
             else{...}              
           }
 ...
};

有人知道类似的源代码吗?

谢谢!!


1
呵呵,不是。如果是这样的话,我会太懒了,对吧? - lukmac
从一个LRU缓存开始,然后继续前进... - Eugen Constantin Dinca
你想在CPU内部建模缓存组件吗?这非常取决于你的整个模型。我会使用一个子函数,并在doAction()中调用它,将指令加载到某种数组中,直到我决定将指令传递给某个指令集模拟器。 - wishi
2
你具体在建模什么?这是L1缓存还是L2缓存?它是直接映射的还是多路关联的?你是否关心虚拟地址转换?是否有I/O设备? - templatetypedef
关于缓存的内部工作原理:http://lwn.net/Articles/252125/ ,不过我不知道有任何 C 或 C++ 的模型。 - Matthieu M.
你已经开始了,为什么不继续下去呢? - user172783
1个回答

1

我的建议是使用策略模式,以便能够对不同的“缓存最基本功能”思想进行建模。显然,您已经有了某种实现。您可以考虑查看代码中包括缓存大小参数,尝试模拟L1与L2(虽然在现实生活中要复杂得多)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接