超线程cpu的寄存器_我对超线程我的理解

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

我对超线程的理解:

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

不知道我理解的对不对,欢迎大佬指正

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值