use*_*294 5 memory assembly caching
我想知道是否有一种方法可以将数据直接存储在处理器的数据缓存中,而不是存储在主内存中。我知道缓存的工作方式是存储最常用的数据,但是,有意义的是要有一个汇编指令来告诉处理器,这将是一个常用数据。我正在使用IA-32汇编语言。
谢谢!
根据架构的不同,有预取提示可将数据直接移至缓存中。对于ia32,这是一条prefetch
指令,可以将数据移动到L1、L2。
另一方面,有些指令告诉处理器避免使用高速缓存,例如moventdq
直接从内存移动数据或将数据移至内存。
编辑:此外,还有为特定类型的缓存算法设置内存范围的说明,例如回写、直写、写入组合或不可缓存。请参阅http://en.wikipedia.org/wiki/Memory_type_range_register。