aka*_*wal 13 memory cpu hard-drive
我正在阅读有关CPU fetch time 的文章,我发现与访问硬盘相比,CPU 从 RAM 访问数据所花费的时间要少得多,并且该 RAM 用于存储执行程序的信息和数据。
然后我想知道当我们只使用硬盘而不使用RAM会发生什么?
rei*_*rab 29
在某些时候,这就涉及到什么才算作“RAM”的问题。有许多 CPU 和微控制器具有足够的片上内存来运行小型操作系统,而无需连接单独的 RAM 芯片。其实这在嵌入式系统的世界里其实是比较常见的。因此,如果您只是指不连接任何单独的 RAM 芯片,那么,是的,您可以使用许多当前的芯片来实现,尤其是那些专为嵌入式领域设计的芯片。我在工作中自己做过。然而,由于可寻址的片上存储器和单独的 RAM 芯片之间唯一真正的区别只是位置(显然还有延迟),因此将片上存储器本身视为 RAM 是完全合理的。如果你把它算作内存,那么当前的数量,
如果您指的是普通 PC,不,您不能在没有连接单独的 RAM 棒的情况下运行它,但这只是因为 BIOS 设计为不会在未安装 RAM 的情况下尝试启动(反过来,因为所有现代 PC 操作系统需要 RAM 才能运行,尤其是因为 x86 机器通常不允许您直接寻址片上内存;它仅用作缓存。)
最后,正如蔡司所说,除了几个寄存器之外,没有任何理论上的理由表明你不能设计一台完全没有任何 RAM 的计算机。RAM 的存在仅仅是因为它比片上内存便宜且比磁盘快得多。现代计算机具有从大但慢到非常快但很小的存储器层次结构。正常的层次结构是这样的:
请注意,内存层次结构的全部原因只是经济学。没有任何理论上的理由(至少在计算机科学中)为什么我们不能在 CPU 芯片上拥有 1 TB 的非易失性寄存器。问题是,建造它会非常困难且昂贵。拥有从少量非常昂贵的内存到大量廉价内存的层次结构使我们能够以合理的成本保持快速的速度。
Zei*_*kon 22
这将是理论上可以设计一个计算机用很少的(几个寄存器的值)或无RAM操作(查找图灵机的定义-这实际上可以在一个适当大/快速实现Conway的生命构成模拟)。
所有现实世界的计算机都使用 RAM 的原因首先是历史性的:核心存储器(RAM 的原型,只是半易失性)大大早于磁鼓或磁盘等大容量存储(尽管它确实出现在打孔卡和纸带之后——前者的原始形式可以追溯到1801 年(是的,19 世纪初;提花织机使用打孔卡自动编织任意复杂的颜色图案,甚至比巴贝奇差分机或霍勒瑞斯制表机早几十年);其次,RAM(如核心存储器)是电子的,比任何依赖存储介质的物理移动以将数据呈现给读/写机制的设备快得多。
一个系统或类似于现代 Windows 或 Linux 计算机的复杂性,没有 RAM(类似于真正的图灵机),需要几天才能启动,并且需要几个小时才能以现代分辨率更新图形界面的屏幕。即使是类似于 CP/M 或早期版本的 DOS 的纯文本操作系统,也需要很长时间才能到达初始命令提示符。
Law*_*ceC 11
所有现代的、标准的、通用的 CPU 基本上都是这样工作的:
CPU 获取该地址空间中的任何内容并递增该寄存器
什么可以“生活”在地址空间中?
请注意“硬盘”不在该列表中。硬盘不直接连接到CPU。数据通过连接到 CPU 的 I/O 设备(SATA 主机适配器)进出硬盘。
I/O 设备使用 DMA 向/从硬盘加载/保存数据。这意味着 I/O 设备直接读取/写入 RAM 本身 - 无需 CPU 干预 - 并且还依赖于那里的 RAM。但是如果数据没有被 I/O 设备加载到 RAM 中,CPU 就没有机会看到它。
所以你不能让 CPU 直接从硬盘获取指令。
页面错误期间发生的情况是:
因此,由于内存被换出而需要从磁盘获取数据的 CPU 没有什么不同。
小智 11
您可以,因为当 x86 CPU 启动时,L2 缓存在用作缓存之前最初是一个 SRAM。因此,您可以编写自己的 bios,以便不初始化 RAM 并仅使用 CPU 内部的少量 SRAM 作为 RAM 而不是 L2/L3 缓存。
只需阅读 CPU 制造商的 BIOS 指南即可。
个人计算机需要RAM 才能运行。每个从硬盘启动的应用程序在执行之前都会先复制到 RAM 中。
因此,如果您的计算机中没有任何 RAM,您的计算机将无法启动,可能会发出几声警告哔声,让您知道没有安装任何 RAM。
| 归档时间: |
|
| 查看次数: |
94415 次 |
| 最近记录: |