有人读过这本书吗?里面错误不少,但是网上也找不到勘误。
碰到一个疑问,第10章Cache设计10.1.3 1节中
"另外,需要提醒大家的是,在主状态机“LOOKUP→LOOKUP”的转换中,要注意避免引入RAM输出端到RAM输入端的路径,也就是说,主状态机发现一个命中的Cache访问,并且接收到一个新的Cache访问请求,此时要避免使用命中信息(来自RAM读出的Tag比较)控制新的RAM的读使能。我们的解决方法是:不管LOOPUP状态的请求是否命中Cache,控制“Hit Write冲突”和新的RAM使能生成时应视为命中来考虑。显然,即使最后发现不命中,也不会导致错误。"
这意思我明白,要避免引入组合环路。
但是“并且接收到一个新的Cache访问请求,此时要避免使用命中信息(来自RAM读出的Tag比较)控制新的RAM的读使能。”,这句话我读不明白,从前面通篇内容下来并不涉及读使能(要读都是读整个cache行);
然后“我们的解决方法是:不管LOOPUP状态的请求是否命中Cache,控制“Hit Write冲突”和新的RAM使能生成时应视为命中来考虑”这句话很拗口,是说不管前一个访问是写还是读都按有冲突流水线需要stall来理解吗?
--
FROM 125.33.206.*