Answers:
是的你可以。通过伪造来自连续(不存在)物理内存位置的读取,可以在缓存中设置标签。然后,您关闭缓存行的进一步填充并输入回写,从而将对缓存的读/写限制在其范围内,它将充当普通的RAM。
一些bios-replacement项目这样做是因为您可以在芯片组和芯片组内存控制器设置上花费更多的代码,例如,您可以用C编写代码。
这种做法广泛用于嵌入式类CPU以及处理引导程序。将高速缓存转换为类似RAM的模式的方法略有不同。
对于简短的低级介绍,您可以查看此演示文稿。
请注意,正如其他人指出的那样,您仍然仍然显然需要从某个地方加载启动代码。
当CPU退出复位状态时,缓存将关闭。BIOS是最初配置和清除缓存的工具。因此,不能,它不能运行在没有RAM的情况下,因为首先就没有RAM来启动它。
我不知道这有多准确,但是我的想法是:
我认为您无法通过任何方式对缓存进行编程访问。您无法保证从一条指令到下一条指令在缓存中的内容以及它的位置,因此即使您可以直接访问它,也无法可靠地将其用作RAM。
您可以在没有RAM的情况下运行x86,但是您将无法使它发挥非常大的作用。您将只能使用内部寄存器进行数据存储。