当前位置:  开发笔记 > 运维 > 正文

记录了Intel x86处理器的L1内存缓存在哪里?

如何解决《记录了Intelx86处理器的L1内存缓存在哪里?》经验,为你挑选了4个好方法。

我正在尝试分析和优化算法,我想了解缓存对各种处理器的具体影响.对于最近的Intel x86处理器(例如Q9300),很难找到有关缓存结构的详细信息.特别是,发布处理器规范的大多数网站(包括Intel.com)都不包含对L1缓存的任何引用.这是因为L1缓存不存在还是由于某种原因被认为不重要?是否有关于消除L1缓存的文章或讨论?

[编辑]在运行各种测试和诊断程序(主要是在下面的答案中讨论的那些)后,我得出结论,我的Q9300似乎有一个32K L1数据缓存.我仍然没有找到一个明确的解释,为什么这些信息很难得到.我目前的工作理论是,L1缓存的细节现在被英特尔视为商业机密.



1> Norman Ramse..:

几乎不可能找到英特尔缓存的规格.当我去年教一个关于缓存的课程时,我问过英特尔内部的朋友(在编译器组中)他们找不到规格.

可是等等!!! 杰德,祝福他的灵魂,告诉我们在Linux系统上,你可以从内核中挤出大量信息:

grep . /sys/devices/system/cpu/cpu0/cache/index*/*

这将为您提供关联性,设置大小和一堆其他信息(但不是延迟).例如,我了解到虽然AMD宣传他们的128K L1缓存,但我的AMD机器有一个64K的分割I和D缓存.


由于Jed,现在两个建议现在已经过时了:

AMD发布了有关其缓存的更多信息,因此您至少可以获得有关现代缓存的一些信息.例如,去年的AMD L1缓存每个周期(峰值)传递了两个单词.

开源工具valgrind中包含各种缓存模型,对于分析和理解缓存行为非常有用.它附带了一个非常好的可视化工具kcachegrind,它是KDE SDK的一部分.


例如:在2008年第三季度,AMD K8/K10 CPU使用64字节高速缓存行,每个L1I/L1D分离高速缓存为64kB.L1D是双向关联的,与L2独占,延迟为3个周期.L2缓存是16路关联的,延迟大约是12个周期.

AMD Bulldozer系列CPU使用分离L1,每个群集具有16kiB 4路关联L1D(每个核心2个).

Intel CPU长期保持L1相同(从Pentium M到Haswell到Skylake,之后可能是很多代):每个I和D缓存分割32kB,L1D为8路关联.64字节高速缓存行,与DDR DRAM的突发传输大小相匹配.负载使用延迟约为4个周期.

另请参阅x86标记wiki以获取更多性能和微体系结构数据的链接.


Intel L1是8路关联的.在Linux上,您可以从`/ sys/devices/system/cpu/cpu*/index*/cache`中提取所有数字.此外,具有glibc的系统通常具有`getconf(1)`,使用类似于`getconf LEVEL1_DCACHE_ASSOC`.

2> 小智..:

本英特尔手册:英特尔®64和IA-32架构优化参考手册对缓存注意事项进行了大量讨论.

在此输入图像描述

第46页,第2.2.5.1节" 英特尔 ®64 和IA-32架构优化参考手册"

甚至MicroSlop也意识到需要更多的工具来监控缓存的使用和性能,并且有一个GetLogicalProcessorInformation()函数的例子(......在创建过程中创建可笑的长函数名时开辟新的道路)我想我会编码起来.

更新I:Hazwell从Tock内部增加了2倍的缓存负载性能; Haswell的建筑

如果有任何疑问,最好尽可能地使用缓存,那么以前由Azul 提供的Cliff Click的演示应该可以消除任何疑问.用他的话来说,"记忆就是新盘!".

Haswell的URS(统一预订站)

更新II:SkyLake显着改进了缓存性能规范.

SkyLake缓存规范



3> Not Sure..:

您正在查看消费者规范,而不是开发人员规范. 这是您想要的文档.缓存大小因处理器系列子模型而异,因此它们通常不在IA-32开发手册中,但您可以在NewEgg等上轻松查找它们.

编辑:更具体地说:第3A卷(系统编程指南)的第10章,优化参考手册的第7章,以及TLB页面缓存手册中的某些内容,尽管我认为一个比你关心的更远离L1关于.



4> Norman Ramse..:

我做了一些调查.苏黎世联邦理工学院有一个小组建立了一个内存性能评估工具,它可能能够获得有关L1和L2缓存的至少(也可能是相关性)大小的信息.该程序通过实验尝试不同的读取模式并测量产生的吞吐量来工作.Bryant和O'Hallaron的流行教科书使用了简化版本.

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有