在lpc中写回缓冲区

时间:2012-01-23 11:05:16

标签: arm

我正在阅读 Lpc2148手册,在我看到的静态Ram部分中

  

回写缓冲区

SRAM 控制器包含回写缓冲区,以防止CPU停顿 在背对背写作期间。回写缓冲区始终保存最后发送的数据 软件到SRAM。此数据仅在另一次写入时写入SRAM 软件要求(数据仅在软件执行另一个时写入SRAM) 写)。如果发生芯片复位,实际的SRAM内容将不会反映最近的写入 请求(即在“热”芯片复位后,SRAM不反映最后的写操作)。 任何在复位后检查SRAM内容的软件都必须考虑到这一点。二 对位置的相同写入可确保在复位后数据将存在。

这是什么意思。他的意思是 CPU停滞背靠背写

1 个答案:

答案 0 :(得分:0)

我不是EE,所以这是一个外行的比喻。你是超市里唯一的购物者。由于业务缓慢,只有一名收银员在这个班次工作。没有收银台 - 只有收银台和条形码扫描仪。您将物品一次一个地交给收银员。当收银员拿着物品时,他们不能再拿另一件物品。只有当收银员完成扫描项目时,他们才能接受另一个项目。如果您没有行李或购物车,并且从货架上将个别物品带到收银台,则没有问题。但是,如果您将多个物品带到收银台并尝试将它们全部交给(背对背),您就不能。你把它们一个接一个地递给你,然后等待每一个都被处理掉。这叫做摊位。

突然间,发明了带传送带的收银台。现在,您可以在柜台购物,并可以自由购物。收银员以自己(慢)的速度扫描物品,因为既有放置它们的地方,也有收银员接触它们的方式。您可以放在柜台上的物品数量是有限的,但它确实允许您放下一些东西并继续购物,使您的购物更有效率。

有一个小问题:在结账柜台发明之前,当你想知道疯狂购物会花多少钱时,你可以看一下收银台显示的总数。但是现在,您需要查看收银机柜台上尚未处理的物品。

这就是为什么读取SRAM指令首先偷偷检查您正在读取的地址是否是写入队列/缓冲区中要写入的地址之一。如果是这样,它将从最新的write-queue-entry中获取具有相同地址的值,而不是实际从SRAM中读取。从写入队列中的地址读取的速度可能比从SRAM中读取的速度快,但是从当前不在写入队列中的地址读取的开销会稍微慢一些(或者如果SRAM读取和缓存,则至少会降低能量效率)搜索是并行进行的)。总的来说,这会使读取变得更糟,但不等待写入的收益是值得的。

他们告诉你的是他们的收银员有一个一个一个的错误:它排出写队列直到它是空的,但直到柜台上只剩下一个项目。一个士力架吧。然后,收银员将永远看着那个士力架,而不是通过结账。如果您需要购买士力架,则需要在柜台上放置另一件物品。然后,收银员将愉快地移动传送带并采取窃笑杆。该文本建议您使用另一个窃笑栏,但您不必这样做。一般情况下,您放在柜台上的最后一件商品将永远不会被收银员处理。