caching - 我可以直接将数据存储在处理器缓存中吗?

标签 caching memory assembly

我想知道是否有一种方法可以将数据直接存储在处理器的数据缓存中,而不是存储在主内存中。我知道缓存的工作方式是存储最常用的数据,但是,有一个汇编指令告诉处理器这将是最常用的数据是有意义的。 我正在使用 IA-32 汇编语言。

谢谢!

最佳答案

根据架构的不同,有预取提示可将数据直接移至缓存中。对于ia32,这是预取指令,它可以将数据移动到L1、L2。

另一方面,有些指令告诉处理器避免使用缓存,例如 movetdq,它直接将数据从内存移入/移入内存。

编辑:此外,还有为特定类型的缓存算法设置内存范围的说明,例如回写、直写、写入组合或不可缓存。请参阅http://en.wikipedia.org/wiki/Memory_type_range_register .

关于caching - 我可以直接将数据存储在处理器缓存中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8493451/

相关文章:

assembly - 你能从机器代码中判断一条指令是否可重定位吗?

c# - 如何缓存 HttpResponseMessage 返回的图像

iphone - 如何创建持久的 iPhone 缓存

javascript - AngularJS 的 REST 服务缓存策略

css 没有缓存在 cloudfront for rails 应用程序中?

assembly - 用 MASM 汇编语言定义带参数的函数

java - 接收java.sql.SQLException : out of memory

memory - 每个内存位置、堆栈、堆等的目的是什么? (迷失在技术细节上)

memory - 用于嵌入式应用的 Reed-Solomon 编码器(内存高效)

assembly - 使用Rust内联汇编时奇怪的机器代码字节顺序