architecture - 在不涉及 CPU 的情况下从 HD 迁移到 RAM?
问题描述
我正在学习 x86 的体系结构,据我所知,当我们执行任何程序时,我们会将其从 HD 放入 RAM,因此在本书的图表中没有任何 CPU 活动。这是否意味着从 HD 迁移到 RAM 不涉及任何 CPU 能力?和其他I/O设备有关。书上写的是文件从主存复制到显示设备。有没有CPU指令?
说实话,我认为不执行指令就不可能做任何事情,但是这本书让我思考。
解决方案
这是“视情况而定”的情况之一。
许多计算机支持称为“直接内存访问”(或 DMA)的东西,其中一些设备可以在不涉及 CPU 的情况下通过内存总线发送数据(除了设置 DMA 传输之外)。这可以是双向的,因此它可以是“内存到外围设备”或“外围设备到内存”。
对于显示器,它可能更加复杂。CPU 完全有可能无法访问驱动显示器的内存。也有可能是双口内存(也就是说图形控制器和CPU都可以同时访问RAM)。它可能是 CPU “bit-banging”显示电缆,也可能是 CPU 作为图形控制器停止运行。
所以,是的,这是可能的。但这实际上取决于主板、涉及的控制器、涉及的操作系统、控制器的驱动程序软件,可能还有更多因素。
推荐阅读
- c# - Xamarin Azure AD PublicClientApplicationBuilder GetAccountsAsync 返回 0
- octobercms - 我可以通过对象ID而不是索引获取记录吗
- jhipster - Jhipster 实体更改导致 liquibase 校验和验证失败错误
- javascript - 透视 JavaScript 数组
- java - 如何将输入的计算存储到内存,输入重复,输入的第一个计算添加到输入的第二个计算等等?
- java - 我无法打印转换字符串的值
- vue.js - Vue.js 错误:无法读取未定义的属性“过滤器”
- python - Scipy TypeError:在优化中使用 dogleg 时,只能将 size-1 数组转换为 Python 标量,为什么?
- javascript - 单个 onChange 仅用于一种形式
- jenkins - 节点无法识别 Jenkins 标签