1
wevsty 2017-04-07 08:27:30 +08:00 1
超线程技术并和完整的物理核心是有所区别,但并不是完全就是摆设。
超线程核心你可以当成一个不完整的物理核心,某些情况下能提供大约物理核心 30%的性能。 操作系统上 4 核心占用 100%才是占满所有的性能。 |
2
xzpjerry731 2017-04-07 08:28:52 +08:00
问题的本质应该是这个百分比是怎么得到的?
|
3
NonClockworkChen OP @wevsty 多谢,我去知乎看看超线程去.
|
4
NonClockworkChen OP @xzpjerry731 对的,我就是不懂,这个百分比到底意味着什么
|
5
ryd994 2017-04-07 08:42:49 +08:00 via Android 1
两个线程其实可以各种执行一部分简单操作,但同一时间只能有一个执行复杂操作,另一个只能等。当然,在操作系统看来,等也计入使用时间
这个百分比就是使用时间 /总时间 2 个 100 和 4 个 100 的区别就在于有没有人想用那两个空的 如果有,又刚好是复杂指令,那就只能等,但也记为忙 实际上 CPU 要复杂的多, pipeline 几十个阶段,会要等的地方很多。比如分支预判错误,或者缓存 miss 之类的。没有超线程的话这时候只能干等。有超线程的时候另一个线程可以直接切入。 |
6
ryd994 2017-04-07 08:46:22 +08:00 via Android 2
打个比方吧,一个人,一张桌子,有一堆文件要处理
如果一个文件有问题,这时候只能干等回音 超线程有两张桌子,要等的时候立刻在另一张桌上上继续处理其他 桌子上有文件的时间比例,就是占用率 等的时候,文件也在桌子上 |
7
zmj1316 2017-04-07 09:15:40 +08:00 1
我记得 intel 的超线程利用的是每个核心的浮点和整数两个运算器,一个核心上的两个超线程可以分别使用浮点和整数运算器,从而提高利用率。没有超线程的话一条指令只会用到其中一个
|
8
NonClockworkChen OP @ryd994 我想我已经 get 到关键点了,等也算使用时间,我能理解那个百分比了.
|
9
NonClockworkChen OP @zmj1316
超线程技术是在一颗 CPU 同时执行多个程序而共同分享一颗 CPU 内的资源,理论上要像两颗 CPU 一样在同一时间执行两个线程, P4 处理器需要多加入一个 Logical CPU Pointer (逻辑处理单元)。因此新一代的 P4 HT 的 die 的面积比以往的 P4 增大了 5%。而其余部分如 ALU (整数运算单元)、 FPU (浮点运算单元)、 L2 Cache (二级缓存)则保持不变,这些部分是被分享的。 一个物理核模拟成两个逻辑核,你那个好像是一个物理核心又对应两个物理核,感觉不太对. |
10
NonClockworkChen OP 除了 v 友的回复,还可以参考本文,一起理解.
http://bbs.zol.com.cn/diybbs/d231_821332.html |
11
zmj1316 2017-04-07 09:29:58 +08:00 1
@NonClockworkChen 哪里有两个物理核了...我就是说一条普通指令一般只用到 ALU 和 FPU 中的一个,所以超线程可以让两个一起用啊。一个核心有 ALU 和 FPU 怎么就变两个物理核了....
至于百分比估计是把流水线阻塞什么的也算进去了吧 |
12
ghostheaven 2017-04-07 09:32:19 +08:00 via Android 1
通常情况下单核即使 100%也不能发挥全部性能,仍然有些器件经常空闲,超线程就是模拟一个核心,把这些空闲的器件用上
|
13
NonClockworkChen OP @zmj1316 "分别使用浮点和整数元算器" 忘记是可以分开来使用的,我把他们当成一个整体,所以脑补成'分别使用对应的浮点和整数运算器了' ,以为你再说有 2 个浮点 2 个整数....抱歉.
结合 12 楼的回复,你说的也很有道理. |
14
NonClockworkChen OP 补充一下,10 楼贴的科普文章,有一个点,作者应该没提(因为解释给装机爱好者听的,作者在文章前声明了,不能像写论文那么搞...)
作者没提到,厨师在煲汤的时候,还可以同时做凉拌菜. 煲汤(浮点运算) 凉拌菜(整数运算). 一开始没理解 5 楼说的第一句话,还好后面的 v 友(7/12 楼),又反复提到,并解释了. |
15
NonClockworkChen OP 百度百科的超线程的工作原理,建议也看下.
|
16
QAPTEAWH 2017-04-07 10:44:12 +08:00
感觉就是 ALU 、 cache 不变,寄存器提供两套
|
17
rockyou12 2017-04-07 11:42:47 +08:00
虽然上面说技术的很多,但 lz 是 win10 嘛? win10 的任务管理器显示 cpu 占用是有 bug 的,应该会比实际占用显示的小很多
|
18
NonClockworkChen OP @rockyou12 不是 win10,只是 win7,多谢提示.
|
19
yttyhf2006 2017-04-08 13:48:55 +08:00 via Android
@rockyou12 什么原因,有链接吗?想看看
|
20
rockyou12 2017-04-08 22:46:20 +08:00
@yttyhf2006 http://www.bilibili.com/video/av6898414/ 这个视频最后说了这个问题。和我平时用的时候感觉一直,具体什么原因就不知道了
|
21
NonClockworkChen OP @rockyou12 那个湾湾讲的可以,这个老外的好像也很好
|
22
NonClockworkChen OP |
23
NonClockworkChen OP @rockyou12 极客湾视频的下面的第一个评论, 关于逻辑核物理核的好像是错的.
但他讲的第二个关于 win7 任务管理器的不正常,貌似有那么一丢丢道理 |
24
NonClockworkChen OP @rockyou12 win10 上面手误
|
25
NonClockworkChen OP @rockyou12 我又看了几遍那个部分...好吧那个评论的理论也不能解释... 可能是有什么 bug 或者内部机制吧...
|