贴吧用户_0AS88EJ 1085433232
关注数: 41 粉丝数: 79 发帖数: 4,949 关注贴吧数: 113
我对超线程我的理解 我对超线程的理解: cpu里有两种东西:累加器和寄存器,累加器是负责运算的,他没有名字,理论上可以多塞,也可以少塞,寄存器是超快速内存,寄存器数量大小是固定的,每个寄存器都是有名字的,x86大约有80个寄存器左右(记不清了,为表达方便,下文认为就是80个),80个是一个核有80个,四核就是320,cpu还叫x86,那就不能变多,我们把默认一个核的累加器/寄存器比例(以下简称累寄比)当做1 有的程序对累加器需求特别大,也就是它需要累寄比大于1,大到了极致就是显卡 如果程序对寄存器需求特别大,(现在常用软件不会特别大,但基本都会大一点),但是,前面说过,寄存器是有名字的,如果加寄存器,那就成无偿劳动了,老板的花名册里没有你,你拿不到工资 解决方案1,不是单核寄存器不够吗,换双核,但晶体管需要钱啊 解决方案2,出个x87构架,想怎么加就怎么加,很明显不现实 解决方法3,用超线程,每个核里塞两倍寄存器,一倍累加器,然后把一个核模拟成两个核,问题解决了 真的解决了吗,如果一个电脑上运行的程序都是对寄存器需求特别大的,那这方案很好,甚至能达到一个支持超线程的核顶两个不支持的核用 但是,现在人均4核,有多少游戏能喂饱9100f?,确实有的软件需要一份累加器两份寄存器,但是9100f有四份寄存器四份累加器 那不就是浪费了吗,我不差超线程那点钱 更可怕的来了,系统是不会把超线程模拟出来的核区别对待的(技术上能,但微软就是没做),也就是一个四核8线的cpu在系统眼里是一个8核8线的,加入有一个对多线程支持特别不好的软件,他只支持两线程,在一个四核四线的cpu上,他的两个线程被分到任意两个核上,任何时候他都有两份寄存器两份累加器,但在一个四核8线的cpu上,他可能被分到一个核的两个线程上,那他只有一份累加器两份寄存器超线程此时变成了debuff 结论:如果关掉超线程,cpu能跑满大半,那超线程是buff,如果关掉超线程,cpu连一小半都到不了,那超线程基本是debuff 不知道我理解的对不对,欢迎大佬指正
首页 1 2 下一页