我已经学习了CPU的组成和随机存取存储器的结构,但我不了解寄存器到寄存器的比较操作。
“为什么寄存器到寄存器的比较操作通常比RAM中两个数据条目上的等效操作快?”
发布于 2011-10-17 04:14:26
RAM访问,当它在缓存之外时,是非常慢的。访问DDR3模块上的数据要比访问寄存器(甚至是L1缓存)慢几百倍。如今的台式机(或服务器,或笔记本电脑)处理器会将大部分时间浪费在访问(L1)缓存之外的数据上,例如在DDR3内存模块上。
正确地说:访问一个寄存器或L1缓存数据最多需要几个周期(因此,在3 3GHz机器上,这通常意味着一纳秒)。访问DDR3内存模块上的数据大约需要200或300纳秒。在这段时间里,你的处理器可以执行上百条机器指令。
这就是为什么数据局部性越来越重要的原因。它甚至对我们正在编写的代码也有影响:扫描链表可能比扫描数组慢得多。
细节是困难的:在当前的处理器上,很难预测一个小例程的最坏情况执行时间。
https://stackoverflow.com/questions/7786947
复制相似问题