modern multi-core architecture's impact on software
发布时间
阅读量:
阅读量
现代中央处理器在性能表现上,主要受限于对内存的访问效率。通常情况下,处理器的运行速度相较于主存至少高出两个数量级。因此,为了提升整体性能,现代处理器普遍引入了L1缓存与L2缓存,而更为先进的处理器还会配备L3缓存。这一技术的应用也带来了新的问题:
当处理器在执行过程中需要访问的内存数据并未存储于缓存中时,必须通过内存总线从主存中获取所需数据。在此期间(大约相当于处理器执行数百甚至上千条指令的时间),处理器会继续执行其他与当前指令无依赖关系的独立指令。例如,在一个由指令1、指令2、指令3等组成的指令序列中,若在执行指令1时需访问主存,则在数据返回前,处理器会继续处理那些逻辑上与指令1无关的后续独立指令。这种判断通常基于各条指令之间的内存引用关系,并具体细节可参考各类处理器的技术文档。这也是导致现代处理器实现乱序执行的重要原因之一。
上述方法是针对数据读取延迟所采取的一种性能优化策略。而对于写入操作而言,情况则更加复杂:
当处理器执行存储操作时,首先会尝试将数据写入距离其最近的L1缓存。若此时发生L1未命中,则需要进一步访问下一级缓存。从速度来看,L1缓存基本能够与处理器保持同步,而其他层级如L2缓存的速度则明显低于CPU处理速度,大约慢20至30倍,并且仍存在L2未命中的可能性,这将导致更多周期用于从主存读取数据。**实际上,在发生L1未命中后,CPU会使用一个额外的缓冲区——
全部评论 (0)
还没有任何评论哟~
