我在西班牙语版阅读“计算机组织和设计硬件/软件界面”,我遇到了一个我无法解决的练习。这个练习关于内存层次结构,特别是缓存。CPU缓存命中时间
演习说:
如果2.5纳秒需要访问N路关联高速缓存标签,4纳秒的访问数据,1纳秒的命中/失败比较和1纳秒返回数据如果成功,则由处理器选择。
高速缓存命中的关键路径是由确定是否有成功或时间数据访问的时间给出的?
什么是缓存命中延迟? (成功案例)。
如果对标签和数据矩阵的访问时间都是3 ns,那么高速缓存成功的延迟是多少?
我会尽量回答所有我知道的记忆问题。
要访问保存在缓存中的数据,我必须做的第一件事是找到使用某个地址的索引字段的行。一旦内存系统找到了该行,我需要将我的地址的标签字段与缓存的标签字段进行比较。如果它们匹配,那么它是一个命中,我必须返回数据,并且将由地址的偏移字段确定的行中的一定数量的数据取代,然后将数据返回给处理器。
这意味着缓存需要8.5 ns。但是我一直在用另一种方式来思考,chaches可以做到这一点:如果我得到所需的线(2.5 ns),那么现在我可以访问de数据,并且可以同时评估iquality的条件。所以,时间将会是4.5纳秒。所以,其中之一是第二个问题的结果。哪些结果是正确的?
对于第一个问题,关键路径将是需要更多时间的操作;如果缓存需要4.5来获取数据,那么关键路径将访问缓存中的标签 - 比较 - 返回数据。否则,这将是整个过程。
对于最后一个问题,如果关键路径是整个过程,则需要8ns。否则,它需要5ns(标签访问缓存,比较,返回数据)。
这是真的吗?和一个完全相关的缓存?和一个直接映射缓存?
问题是我不知道缓存先做什么以及下一步或并行执行什么操作。
优秀的答案!谢谢 –