现在如果产生IO操作的时候,程序员主动切换协程,来提升吞吐量。我们观察到协程的上下文切换在~7ns左右,而L3访问延迟在 ~17ns,内存访问延迟在~100ns,使用CXL访问远端内存会有更大延迟,因此我们使用 cache 缺失预测的方式,如果预测L2会缺失或者访问L2发生缺失那么CPU 将产生协程切换,同时将产生切换的访问内存指令改成异步操作(等同于prefetch),等到再次切换回来的时候(协程使用简单的双向链表),再次重新执行内存访问指令。这样可以将CPU的计算和访存操作并行起来,提升CPU的吞吐能力。
注:这里包括数据和指令缺失都会产生协程的切换
【 在 hgoldfish 的大作中提到: 】
: 这个跟逻辑核心没啥区别吧?首先核心上面要有充足的指令流,才能够进行协程切换的吧。
: 你们特别设计了指令集?没明白。求科普一下。
:
--
FROM 47.88.5.*