多线程缓存未利用漏洞



当I例如在链表上迭代,变得非常不走运,我将有大约0%的缓存命中率(无论如何,让我们假设这一点(。为了简单起见,我们还假设我的CPU一次只能运行一条指令(没有多核/超线程(。凉的现在,我的命中率为0%,CPU/程序99%的时间都在等待数据。

问题:如果线程正在等待来自RAM/磁盘的数据,该内核是否被阻塞?或者,我可以通过运行其他线程(或者另一种不增加命中率的方法(来利用低缓存命中率,让CPU不专门等待数据,而是做其他工作吗?

如果运行SMT,那么另一个线程可以捕获所有核心资源,从而覆盖缓存未命中(至少部分(。

据我所知,没有哪个处理器会使缓存上的任务切换失败,但我知道有几种体系结构使用SMT-2/4/8(是的,一些Power CPU有SMT-8(来覆盖这种情况。

最新更新