现有的多线程技术其实用CAAQA的说法,就是利用多线程发掘ILP,也就是充分填满流水线,充分利用功能单元。
1)你说每个 CPU 核心只全力执行一个线程是什么意思,线程切换的时候排空当前核心的流水线吗?不排空用重命名寄存器是吧,这寄存器堆要做多大,还是那句你要支持多少线程?
2)另一个角度讲既然你能够轻松实现前段部分的寄存器重命名,那么到后面指令retire又有什么难呢。好了你直接就实现完整的线程得了吧,线程还主动停下来干啥呢?
3)当前SMT有几个线程?俩;或者粗/细粒度多线程?4?8?。
以上还是从性能去考虑这个设计问题的,不考虑性能为了多线程而多线程,这设计就没啥意义了。
【 在 hgoldfish 的大作中提到: 】
: 你的认识有盲区。。我说的这种多线程,他们并不同时执行,每个 CPU 核心只全力执行一个线程。和超线程那种操作系统无感知的技术不一样的。
:
--
※ 来源:水木社区 [117.143.125.*(上海)]
#修改自zSMTH@NOP-AN00
※ 修改:·yangtou 于 Jun 21 07:36:48 2022 修改本文·[FROM: 117.143.124.*]
※ 来源:·水木社区
http://www.mysmth.net·[FROM: 117.143.125.*]
修改:yangtou FROM 117.143.124.*
FROM 117.143.125.*