jth*_*tht 6 memory cpu computer-architecture
当cpu正在执行程序时,它是否通过内存管道移动所有数据?然后,任何数据都将从ram-> cache->寄存器中移出,这样所有执行的数据都会在某个时刻进入cpu寄存器.或者它是以某种方式选择它放在那些更快的内存类型中的代码,还是作为程序员选择你想要保留的特定代码,例如,用于优化的缓存?
这个问题的答案本身就是一个完整的过程!(通常)发生的非常简短的总结是:
某些CPU支持动态内存访问(DMA),它为不需要CPU的操作提供快捷方式.这些包括存储器到存储器的复制以及存储器和存储器映射的外围控制模块(例如UART和其他I/O模块)之间的数据传输.这些将导致数据在RAM中移动,读取或写入,而根本不会实际影响CPU内核.
在更高级别,一些支持多个进程的操作系统将在交换进程时将分配给当前进程的RAM保存到硬盘,并在进程再次运行时再次从磁盘加载.(这就是为什么你可以在C:盘上找到'Page Files'以及限制它们大小的选项.)这允许所有正在运行的进程利用大部分可用的RAM,即使它们实际上不能共享它们同时.分页是另一个值得学习的课程.(感谢Leeor提到这一点.)
| 归档时间: |
|
| 查看次数: |
2383 次 |
| 最近记录: |