【发布时间】:2017-04-05 07:01:18
【问题描述】:
我在这样的问题上是不败的
在内存层次结构的上下文中,为什么要实现数据缓存和 指令缓存?
我回答说减少冲突未命中和空间不足未命中的数量很有用。但是数据缓存和指令缓存可以根据数据和指令的数量来调整大小吗?因为我假设数据的数量高于指令的数量(很多时候我们需要 2 个数据来执行 1 条指令)并且数据缓存和指令缓存的大小是根据这个数字来确定的。是真的还是完全错误的?既然错了,为什么要实现数据缓存和指令缓存来减少miss呢?
【问题讨论】:
-
从问题的措辞上无法理解问题的含义。为什么每种类型都有一个缓存?为什么要拆分它们?您应该回到要求澄清的人那里。
-
请参阅my answer on another cache question,我在其中指出,一个具有足够读/写端口用于指令和数据的大型缓存会更加耗电,并且/或者不可能像拆分 L1 缓存一样快。数据和指令通常不会重叠,因此拆分缓存几乎是绝对的胜利。
-
@Ernest Fish Moro 请阅读 Peter Cordes 在评论中提供的出色答案。
标签: caching cpu-architecture cpu-cache