便笺簿只是用来存放一些东西的地方。缓存,是您通常不谈论的内存。Scratchpad 就像一个便签,你可以在上面写一些东西并随身携带。缓存是您发送给其他人的文件,其中包含备忘录等说明。
缓存可以在不同的地方、层(L1、L2、L3...)。暂存器和缓存都只是某些芯片中的 sram,具有地址和数据总线以及读/写/等控制信号。(就像计算机中的许多其他东西一样,可能会或可能不会用于可寻址内存)。在启动期间,在远端(较慢的 ram 端,处理器是近端)的 ram 初始化之前(如果您有缓存,通常最终 dram 否则为什么有缓存),可能可以将缓存作为可寻址的 ram 访问。不过,这在很大程度上取决于系统/设计,可能有一个控制寄存器使其能够像简单的 ram 一样工作,或者可能有一种模式,
但是,缓存的正常用例是作为理想情况下不可见的 ram 路径。您不使用缓存寻址访问缓存 ram,而是使用超出 ram 的地址空间,并且缓存只是允许处理器继续运行而无需等待慢速 ram。
再谈开机,想想开机时需要做的事情,即调出dram控制器,这绝对是一件非常重要的事情。拥有一些片上内存可以让您暂时为小堆栈和一些变量提供一些内存。例如,您可以使用像 C 这样的编译语言的编译器,它至少需要一些用于堆栈和变量的内存。根据空间的不同,您也可以将一些程序放在那里,可能比从闪存中运行得快得多。没有 ram 的替代方案可能是必须仅使用处理器中的通用寄存器或其他寄存器在汇编中编写 dram init,这将执行复杂的任务并使其变得更加困难。一旦主系统内存启动,您可能会也可能不会选择不使用片上(暂存)内存。
我会并且确实认为,如果您想测试 dram 以查看它是否正常工作,那么您不需要使用该 ram 来测试该 ram,测试程序不应运行,也不应使用被测 ram。在芯片上具有暂存器 ram(或地址空间中的其他一些 ram,例如可能是显卡 ram)可用于 dram 测试程序。不幸的是,很多人会使用被测内存来保存堆栈、程序和变量以及来自执行测试的程序的堆,除了一个或少数模式之外,内存的重要部分未经测试。