复制大于一个缓存行的缓存中的数据

时间:2015-01-07 17:38:01

标签: cpu-cache

在C中,有没有办法复制大于一个缓存行大小的缓存中的数据,例如单个内存中读取128或256个字节?

1 个答案:

答案 0 :(得分:0)

答案是,这取决于“单个内存读取”的含义。在CPU级别,我们正在使用缓存和数据线。在内核级别,我们正在处理内存页面。在应用程序级别,我们正在使用流和特定于语言的数据类型。

使用C,您可以以特定于操作系统的方式访问后者,甚至内核级内存,但通常无法访问CPU级别。 (除非你正在编写内核/微内核或进行嵌入式控制器编程)事实上,它比只是缓存复杂得多,现代CPU中有各种各样的内存接口和总线,所以它取决于/ what /和/ where /等等......

Linux的内核级内存接口在C语言中非常容易访问,并且有很好的文档记录,从mmap()手册页开始。