我很难完全理解缓存是如何工作的。假设我有一个L1缓存和L2缓存。
#2发生在这里还是在L1向L2发送内存地址之后?
在读取时间(如果L1为x循环),L2为y循环,主内存为z循环。基本上,如果上面的步骤发生,然后L2找到一个缓存标记匹配,并将其发送回发送给main的L1,那么它需要多少周期?当L1将它返回到CPU时,这是否算作读取周期?
提前感谢您的帮助!
发布于 2017-04-04 21:34:09
L1可能在处理器中,但进程仍然相同。处理器执行读操作,例如地址和读/控制信号输出。在地址中,L1缓存查找标记并确定命中/误击。如果是命中,则返回信息,如果没有找到,则L1需要在其地址总线上运行,调整地址以使其与缓存行大小和地址对齐。L2做的事情与L1在较高级别上所做的一样,地址变成标记变成命中/失败,如果失败,则将对齐/大小的缓存线提取到其外部地址总线上,这会重复,直到您命中应答的内容(DRAM、外围设备等)。当L2响应时,它将该行发送回L1,根据设计/设置的规则,L1保存行,然后将所要求的数据/长度返回给处理器。现在,根据设计和设置,L1和L2包含相同的数据,理想情况下,L1包含L2中的所有数据,L2包含所有L1数据和一些数据。当然,不可缓存的请求应该通过,因此您可能会遇到L2命中,从而导致L1不存储数据。此外,根据设计,不可缓存的请求可能以原始处理器大小/形状传递到L1和/或L2的另一端,而不是对齐和大小到缓存线。
https://stackoverflow.com/questions/43215154
复制相似问题