不同应用程序状态下的CPU和RAM操作

不同应用程序状态下的CPU和RAM操作

这实际上由多个问题组成。

  1. 应用程序启动并加载到 RAM 后,RAM 的操作每秒会刷新多次(即使没有任何输入,应用程序只是停留在屏幕上)。这是正确的吗?如果是这样,那么数据为什么不像 HDD 那样以静态状态存储?

  2. 即使没有来自 CPU 的指令,它是否仍会对应用程序运行操作?

答案1

“即使没有来自 CPU 的指令,它是否仍会对应用程序运行操作?”

CPU 在循环过程中执行指令,一些指令需要多个周期,其他指令可以并行执行,CPU 时钟根据需要加速或减慢,具体取决于发送的指令和指令数量,如果没有指令,它们将处于空闲状态,直到发送新指令。

“应用程序启动并加载到 RAM 后,RAM 的操作每秒会刷新多次(即使没有任何输入,应用程序只是停留在屏幕上)。这是正确的吗?如果是这样,那么数据为什么不像 HDD 那样以静态状态存储呢?”

如果应用程序更改了变量,则该信息将根据需要在内存中更新。除此之外,由于 RAM 的易变性,RAM 会刷新以保持信息的完整性,将信息存储在 HDD 上(通过虚拟内存或交换分区)是常用的方法,但由于读/写速度低,因此不推荐这样做。

答案2

应用程序启动并加载到 RAM 后,RAM 的操作每秒会刷新多次(即使没有任何输入,应用程序只是停留在屏幕上)。这是正确的吗?

正确的。

旧计算机(例如 Commodore 64)需要在此过程中停止 CPU(对于 Commodore 64,视频芯片实际上处理 RAM 刷新)。

现代计算机有专用的内存控制器来发出 DRAM 刷新指令。

如果是这样,那么为什么数据不像 HDD 那样以静态状态存储呢?

静态 RAM 确实存在。CPU 中的缓存会使用它。它比 DRAM 更昂贵、更耗电(而且由于不需要刷新周期,因此速度更快),因此它往往只在收益大于成本的情况下使用。

在旧的 486 主板上,当缓存 RAM 开始流行时,你会在插槽中插入小型静态 RAM 芯片。这些芯片不能作为主 RAM 寻址,而是作为外部 CPU 缓存(386/486 时代)。然后,缓存 RAM 开始包含在带有 CPU 的卡上(奔腾 I/II 时代),然后内置在 CPU 中。

即使没有来自 CPU 的指令,它是否仍会对应用程序运行操作?

Intel CPU 有一条HLT指令,指示它停止运行直到下一次中断。中断可以来自设备或其他来源(重置是一种中断)。旧 CPU 在遇到此指令时不会物理停止运行,但后来的 CPU 会物理关闭电源。

没有这种指令的 CPU 永远不会停止。让它们不做任何事情的唯一方法是将它们置于无限循环中。

相关内容