我在阅读有关CPU提取时间的文章,发现与访问硬盘相比,CPU从RAM访问数据所需的时间要少得多,并且存在RAM用于存储执行程序的信息和数据。
然后我想知道仅使用硬盘但不使用RAM时会发生什么情况?
我在阅读有关CPU提取时间的文章,发现与访问硬盘相比,CPU从RAM访问数据所需的时间要少得多,并且存在RAM用于存储执行程序的信息和数据。
然后我想知道仅使用硬盘但不使用RAM时会发生什么情况?
Answers:
在某个时候,这成为什至算作“ RAM”的问题。许多CPU和微控制器都具有大量的片上内存来运行小型操作系统,而没有连接单独的RAM芯片。实际上,这实际上在嵌入式系统领域相对普遍。因此,如果您仅指的是没有连接任何单独的RAM芯片,那么可以,您可以使用许多当前的芯片,尤其是为嵌入式世界设计的芯片来实现。我是在工作中亲自做的。但是,由于可寻址的片上存储器和单独的RAM芯片之间的唯一真正区别只是位置(并且显然是延迟),因此将片上存储器本身视为RAM是完全合理的。如果您将其计为RAM,那么当前的数量
如果您指的是普通PC,否,没有连接单独的RAM棒就无法运行它,但这仅是因为BIOS设计为不尝试在未安装RAM的情况下进行引导(这反过来是因为现代PC操作系统需要运行RAM,特别是因为x86机器通常不允许您直接寻址片上内存;它仅用作高速缓存。)
最后,正如Zeiss所说,除了几个寄存器外,没有任何理论上的理由说明您不能将计算机设计为完全没有RAM。RAM的存在仅仅是因为它比片上内存便宜,而且比磁盘快得多。现代计算机的存储器层次结构从大但慢到非常快而小。普通的层次结构是这样的:
请注意,内存层次结构的全部原因仅仅是经济学。没有理论上的原因(至少在计算机科学领域内如此),为什么我们在CPU芯片上不能拥有TB的非易失性寄存器。问题在于,它的建造极其困难且昂贵。层次结构的范围从少量的非常昂贵的内存到大量的廉价内存,使我们能够以合理的成本保持快速的速度。
从理论上讲,设计一台计算机时只需很少的内存(只有几个寄存器的值)或没有RAM(查找图灵机的定义),这实际上可以在适当的大型/快速实施的Conway's Life中构建。模拟)。
首先,所有现实世界中的计算机都使用RAM的原因是历史悠久的:核心内存(RAM的原型,只有半易失性)大大早于大容量存储,例如磁鼓或磁盘(尽管它确实是在打孔卡和纸带之后出现的)前者的原始形式可以追溯到1801年(是的,是19世纪初;提花织机使用打孔卡自动编织具有任意复杂度的颜色图案,甚至在Babbage Difference Engines或Hollerith制表器之前数十年);其次RAM(如核心内存)是电子的,它比任何依靠存储介质的物理移动将数据呈现给读/写机制的设备都快得多。
对于没有RAM的现代Windows或Linux计算机(类似于真正的Turing机器)而言,其系统或类似的复杂性,仅需几天即可启动,而要花几小时的时间才能更新具有现代分辨率的图形界面的屏幕。即使是与CP / M或DOS早期版本相当的纯文本操作系统,也要花费很长时间才能到达初始命令提示符。
您可以,因为x86 CPU启动时,二级缓存最初是用作缓存的SRAM。因此,您可以编写自己的BIOS以便不初始化RAM,而仅将CPU内部的少量SRAM用作RAM,而不使用L2 / L3高速缓存。
只需阅读CPU制造商的BIOS准则。
所有现代的标准通用CPU从根本上来说都是这样工作的:
CPU获取该地址空间中的任何内容并递增该寄存器
在地址空间中可以“生存”什么?
请注意,“硬盘”不在该列表中。硬盘未直接连接到CPU。数据通过连接到CPU的I / O设备(SATA主机适配器)往返硬盘。
I / O设备使用DMA将数据加载到硬盘或从硬盘保存数据。这意味着I / O设备本身直接读取/写入RAM,而无需CPU干预-并且还依赖于RAM。但是,如果I / O设备尚未将数据加载到RAM中,则CPU没有机会看到它。
因此,您不能让CPU直接从硬盘上获取指令。
页面错误期间发生的情况是:
因此,由于内存已换出,需要从磁盘获取数据的CPU也不例外。
个人计算机需要运行RAM。从硬盘启动的每个应用程序都将在执行之前首先复制到RAM。
因此,如果您的计算机中没有RAM,则计算机将无法启动,可能会发出几声警告音,让您知道没有安装任何RAM。
计算机将无法运行。RAM是主板成功发布的重要组成部分。当不存在或损坏RAM时,许多主板通常会发出蜂鸣声代码以指示在哪里进行故障排除。
实际上,至少在两种情况下,您可以在没有技术上称为RAM的情况下运行计算机
第一台旧的机械“计算机”(Konrad Zuse的构造和Charles Babbage的计算机是没有RAM的机械设备,仍称为计算机)
没有RAM且只有带有寄存器的处理器(芯片)的现代计算机。在大多数情况下,处理器上具有SRAM(高速缓存存储器),但是最快的计算机存储器称为芯片上的寄存器,从技术上讲,芯片上的寄存器不是RAM。