
可以说,4个线程在Multicore x86处理器的4个独立核心上运行,并且它们不共享任何数据,是否可以通过编程方式使4个核心使用共享L2缓存的单独和预定义部分.最佳答案让我们使用两个术语,独占和共享缓存,而不是L1,L2,L3,L4缓存.不同的cpu系列开始在不同级别共享缓存.在所提出的术语中,最初的问题是 – 是否可以将共享缓存拆分为部分,每个部分将由其中一个cpu /核心专用?没有明确的答案.此外,有两个答案彼此相反.
1)首先和一般答案:没有.
缓存是通过硬件管理设计的.在软件中只能访问缓存的控制杠杆很少,例如对整个内存或已定义的内存区域启用/禁用缓存,应用指定的缓存刷新策略(直写/写回).基本上没有,因为它被设计为在硬件中管理.因此,没有有用的界面可以在软件中优雅地管理它.
2)第二个答案:是的.
实际上,缓存是以这种方式设计的,即缓存的每一行都可以保存来自指定内存行的数据.由于这一点,如果内存管理器提供保证,相同的cpu一个cpu /内核拥有并使用专门分配给同一缓存行的所有内存行,则内存管理器保证该cpu将专门使用该缓存行.这是一个非常棘手的解决方法.它的优点非常有限,并且有严重的缺点:内存布局非常分散,缓存使用不平衡,内存管理复杂,非常依赖于软件(详细信息可以在“MetallicPrIEst”提供的文章中找到).
简历:从理论上说这是可能的,而在实践中几乎是不可能的.
总结以上是内存溢出为你收集整理的是否可以将共享L2缓存的一部分分配给不同的核心全部内容,希望文章能够帮你解决是否可以将共享L2缓存的一部分分配给不同的核心所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)