【发布时间】:2015-01-08 12:06:52
【问题描述】:
cpu 在执行程序时,是否会通过内存管道移动所有数据?然后任何数据都将从 ram->cache->registers 移动,因此所有执行的数据都会在某个时候进入 cpu 寄存器。还是它会以某种方式选择它放入那些更快的内存类型的代码,或者作为程序员,您是否可以选择您想要保留的特定代码,例如用于优化的缓存?
【问题讨论】:
-
这取决于您使用的 CPU、编程语言和许多其他因素。请您提供一个具体示例,以及有关处理器语言和编译器的更多信息吗?
-
@MikeofSST 我没有具体的例子,我正在学习操作系统课程,这些都是我脑海中闪现的问题。我并没有真正考虑过对此的不同实现,如果存在或示例,我正在寻找更通用的答案。
-
如果我们假设目标处理器有多个寄存器、一个数据缓存和一个内存管理单元,就像您在大多数适合托管相当大的操作系统(例如 Linux)的 CPU 上发现的那样或其中一个 Windows 变体,然后一个好的优化编译器和相关的 OS API 库将为您处理这一切。如果您通过使用汇编或其他低级语言稍微了解一下“幕后”,那么您可以显式影响数据存储位置、缓存等。
标签: memory cpu computer-architecture