有人可以解释缓存和暂存存储器之间的区别吗?我目前正在学习计算机架构。
答案 0 :(得分:1)
一个便笺簿只是一个保留一些东西的地方。缓存,是你通常谈论的记忆而不是说话。 Scratchpad就像一个便条纸,你写的东西,并与你保持一致。缓存是您发送给其他人的纸张,其中包含备忘录等说明。
缓存可以位于不同的位置,层(L1,L2,L3 ......)。暂存器和高速缓存都只是在某些芯片中使用,具有地址和数据总线以及读/写/等控制信号。 (和计算机中的许多其他东西一样,可能会或可能不会用于可寻址的ram)。在启动期间,在远端(较慢的ram侧,处理器为近侧)的ram之前被初始化(通常如果你有缓存则通常是drang,否则为什么有缓存)可能可以访问缓存作为可寻址的ram。这在很大程度上取决于系统/设计,可能有一个控制寄存器,使其能够像一个简单的ram,或者可能有一个模式,或者它的正常模式可能是这样的,只要你不解决超过ram的大小基于它的对齐(也许是32K边界之间的32K ram)然后它可能不会尝试驱逐任何东西并在缓存的dram / slow / far端生成总线周期,允许你将它用作ram就像一个便笺簿。
但是,缓存的正常用例是ram理想的无形路径。你不使用缓存寻址访问缓存ram你使用ram的地址空间,缓存只是允许处理器继续而不等待慢速ram。
再谈一下启动时,想一想启动时需要做的事情,即启动dram控制器,这绝对是一件非常重要的事情。有一些片上存储器允许你,如果没有别的东西暂时有一些ram的小堆栈和一些变量。例如,您可以使用像C这样的编译语言编译器,它至少需要一些ram用于堆栈和变量。根据空间的不同,您也可以在那里放置一些程序,可能比从闪存运行速度快得多。没有ram的替代方案可能是必须在处理器中仅使用通用或其他寄存器来编写dram init,从而执行复杂的任务并使其变得更加困难。一旦主系统RAM启动,那么您可能会或可能不会选择不使用片上(暂存器)柱塞。
我会并且确实争辩说,如果你想测试dram以确定它是否正常工作,那么你不需要使用那个ram来测试那个ram,测试程序不应该运行也不能使用被测试的ram。在屏幕上有一个暂存器ram(或地址空间中的其他一些ram,例如可能是视频卡ram)可以用于dram测试程序。不幸的是,许多人将使用被测试的ram来保存堆栈和程序以及变量和堆来自执行测试的程序,使得ram的重要部分未经测试而不是一个或少量模式。