如何修改CPU缓存的L1、L2和L3?

4

我可以使用System.Runtime.Caching命名空间来修改CPU缓存L1、L2和L3的属性和值吗?

msdn.microsoft.com告诉我这个命名空间允许在Windows中创建新的缓存存储,就像虚拟RAM一样。

但是,我想使用CPU自带的缓存进行编程。你能告诉我如何做到这一点吗?

谢谢提供解决方案!

1个回答

5
System.Runtime.Caching提供访问高级缓存设施的功能,通常使用键值对在常规RAM上。(除此之外还有更多用例。)就像您提到的MSDN所说:
“您可以创建自定义缓存提供程序。例如,您可以创建自定义提供程序,将缓存数据存储在数据库中、自定义对象中或文件系统中,而不是使用默认的内存缓存引擎。”
但CPU缓存是一种低级内存,它与CPU本身一起自动使用,以减少访问RAM的次数;因此,它实际上并不是由外部应用程序修改的。
例如,L1指令缓存位于处理核心旁边,它存储机器代码指令,而.NET应用程序甚至在.NET Framework本身(或ngen)运行它们之前都不会被存储为机器代码,这使得低级操作变得更加困难。

CPU cache

但这并不意味着它们不能受到您的代码的影响。您可以编写高效的代码,使CPU以优雅的方式使用其缓存。有关更多信息,请参见:如何编写最佳利用CPU缓存以提高性能的代码?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接