一些体系结构有一个“预取写入”指令,用于向CPU表明在实际执行操作之前将要写入内存位置。我明白,在多核机器上,核心可以使用它作为暗示,它应该尝试现在获得给定高速缓存行的所有权,以便稍后可以更快地写入该位置。但是,AFAICT应该只在两个核心有可能竞争缓存线的情况下才起作用。对于仅由单个内核读取和写入的高速缓存行,预取写入是否有用?预取写入是否影响单核性能?
3
A
回答
1
其他所有条件都相同,对于仅由单个内核访问的行,预取写入没有优于预取读取。经过任何一种预取后,核心将拥有独有的状态。在随后的写入中,该行更改为修改后的状态。独家修改过渡是免费的,因为根据定义,没有其他核心拥有这条线。 E-> M状态更改在本地完成,无需窥探。
请注意内核具有自己的硬件预取逻辑。对线路的访问可能会导致核心自动抓取相邻的线路。如果全局变量或其他数据驻留在附近,则SMP系统可能会遇到很多意外的交叉窥探。
0
我认为它可以帮助如果高速缓存行不在内存中,并且写预取标记它将从现在开始需要一些周期。家务劳动,比如为写作腾出一条线可能会更加困难。当然,这应该允许CPU完成写入的速度比如果它只是简单地将写入缓存写入缓存一圈?
还是我错过了一些基本的东西?
相关问题
- 1. 预处理器指令是否影响OpenCL内核性能?
- 2. 相对或绝对协议是否影响dns预取性能?
- 3. 性能影响写入套接字时()
- 4. 变量是否会影响性能?
- 5. 表大小是否影响INSERT性能?
- 6. 此javascript语句是否影响性能?
- 7. 事务范围是否影响性能?
- 8. 构造函数是否影响性能?
- 9. 使用require()是否会影响性能?
- 10. $(this)是否会影响性能,如$([selector])?
- 11. 现在SSL是否会影响性能?
- 12. 404错误是否会影响性能?
- 13. Linux上的ACL是否影响性能
- 14. Hows是否会影响性能?
- 15. 在ruby中重写hash和eql是否会影响性能?
- 16. Asterisk配置中的写入顺序是否会影响VoIP的性能?
- 17. Angular - 注入模块的数量是否会影响性能?
- 18. 导入更多名称空间是否会影响性能?
- 19. 如果内核太短会否影响性能?
- 20. 性能影响
- 21. Windows性能计数器是否会影响性能?
- 22. 了解“写输出”的性能影响
- 23. dns预取会对性能产生负面影响吗?
- 24. LINQ性能影响
- 25. 性能的影响
- 26. 实体上的Blob属性是否会影响查询性能?
- 27. 表的OrderBy属性是否影响性能
- 28. 负z指数是否会影响性能或兼容性?
- 29. 海量文件写入对JVM进程性能的影响
- 30. 独特约束如何影响Postgres DB中的写入性能
所以你在说,因为写预取也会像正常的预取一样工作,所以它可能有所帮助?这是可能的你是对的。 –
CPU和RAM之间的任何事情都必须通过缓存行来完成。如果没有加载有问题的缓存行,那么读取或写入将不得不等待,直到它。 –