对于 CPU 的线程感到了困惑.... - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NonClockworkChen
V2EX    问与答

对于 CPU 的线程感到了困惑....

  •  
  •   NonClockworkChen 2017-04-07 08:15:31 +08:00 4101 次点击
    这是一个创建于 3111 天前的主题,其中的信息可能已经有所发展或是发生改变。
    笔记本双核 4 线程的 i5,打开任务管理器,有 4 框.定为 ABCD. 双核为 CPU I 和 CPU II.
    A 30% B 30% C 30% D 30%
    是 CPU I 60%和 CPU II 60%吗

    A 100% B 0% C 100% D 0%
    A 100% B 100% C 100% D 100%的区别是
    上一种刚好全效工作,
    下一种,已经拖欠了一半性能吗
    25 条回复    2017-04-09 00:12:33 +08:00
    wevsty
        1
    wevsty  
       2017-04-07 08:27:30 +08:00   1
    超线程技术并和完整的物理核心是有所区别,但并不是完全就是摆设。
    超线程核心你可以当成一个不完整的物理核心,某些情况下能提供大约物理核心 30%的性能。
    操作系统上 4 核心占用 100%才是占满所有的性能。
    xzpjerry731
        2
    xzpjerry731  
       2017-04-07 08:28:52 +08:00
    问题的本质应该是这个百分比是怎么得到的?
    NonClockworkChen
        3
    NonClockworkChen  
    OP
       2017-04-07 08:29:53 +08:00
    @wevsty 多谢,我去知乎看看超线程去.
    NonClockworkChen
        4
    NonClockworkChen  
    OP
       2017-04-07 08:30:29 +08:00
    @xzpjerry731 对的,我就是不懂,这个百分比到底意味着什么
    ryd994
        5
    ryd994  
       2017-04-07 08:42:49 +08:00 via Android   1
    两个线程其实可以各种执行一部分简单操作,但同一时间只能有一个执行复杂操作,另一个只能等。当然,在操作系统看来,等也计入使用时间
    这个百分比就是使用时间 /总时间
    2 个 100 和 4 个 100 的区别就在于有没有人想用那两个空的
    如果有,又刚好是复杂指令,那就只能等,但也记为忙

    实际上 CPU 要复杂的多, pipeline 几十个阶段,会要等的地方很多。比如分支预判错误,或者缓存 miss 之类的。没有超线程的话这时候只能干等。有超线程的时候另一个线程可以直接切入。
    ryd994
        6
    ryd994  
       2017-04-07 08:46:22 +08:00 via Android   2
    打个比方吧,一个人,一张桌子,有一堆文件要处理
    如果一个文件有问题,这时候只能干等回音
    超线程有两张桌子,要等的时候立刻在另一张桌上上继续处理其他
    桌子上有文件的时间比例,就是占用率
    等的时候,文件也在桌子上
    zmj1316
        7
    zmj1316  
       2017-04-07 09:15:40 +08:00   1
    我记得 intel 的超线程利用的是每个核心的浮点和整数两个运算器,一个核心上的两个超线程可以分别使用浮点和整数运算器,从而提高利用率。没有超线程的话一条指令只会用到其中一个
    NonClockworkChen
        8
    NonClockworkChen  
    OP
       2017-04-07 09:21:16 +08:00
    @ryd994 我想我已经 get 到关键点了,等也算使用时间,我能理解那个百分比了.
    NonClockworkChen
        9
    NonClockworkChen  
    OP
       2017-04-07 09:22:44 +08:00
    @zmj1316
    超线程技术是在一颗 CPU 同时执行多个程序而共同分享一颗 CPU 内的资源,理论上要像两颗 CPU 一样在同一时间执行两个线程, P4 处理器需要多加入一个 Logical CPU Pointer (逻辑处理单元)。因此新一代的 P4 HT 的 die 的面积比以往的 P4 增大了 5%。而其余部分如 ALU (整数运算单元)、 FPU (浮点运算单元)、 L2 Cache (二级缓存)则保持不变,这些部分是被分享的。

    一个物理核模拟成两个逻辑核,你那个好像是一个物理核心又对应两个物理核,感觉不太对.
    NonClockworkChen
        10
    NonClockworkChen  
    OP
       2017-04-07 09:26:11 +08:00
    除了 v 友的回复,还可以参考本文,一起理解.
    http://bbs.zol.com.cn/diybbs/d231_821332.html
    zmj1316
        11
    zmj1316  
       2017-04-07 09:29:58 +08:00   1
    @NonClockworkChen 哪里有两个物理核了...我就是说一条普通指令一般只用到 ALU 和 FPU 中的一个,所以超线程可以让两个一起用啊。一个核心有 ALU 和 FPU 怎么就变两个物理核了....
    至于百分比估计是把流水线阻塞什么的也算进去了吧
    ghostheaven
        12
    ghostheaven  
       2017-04-07 09:32:19 +08:00 via Android   1
    通常情况下单核即使 100%也不能发挥全部性能,仍然有些器件经常空闲,超线程就是模拟一个核心,把这些空闲的器件用上
        13
    NonClockworkChen  
    OP
       2017-04-07 09:38:19 +08:00
    @zmj1316 "分别使用浮点和整数元算器" 忘记是可以分开来使用的,我把他们当成一个整体,所以脑补成'分别使用对应的浮点和整数运算器了' ,以为你再说有 2 个浮点 2 个整数....抱歉.
    结合 12 楼的回复,你说的也很有道理.
    NonClockworkChen
        14
    NonClockworkChen  
    OP
       2017-04-07 10:26:46 +08:00
    补充一下,10 楼贴的科普文章,有一个点,作者应该没提(因为解释给装机爱好者听的,作者在文章前声明了,不能像写论文那么搞...)

    作者没提到,厨师在煲汤的时候,还可以同时做凉拌菜.

    煲汤(浮点运算) 凉拌菜(整数运算).

    一开始没理解 5 楼说的第一句话,还好后面的 v 友(7/12 楼),又反复提到,并解释了.
    NonClockworkChen
        15
    NonClockworkChen  
    OP
       2017-04-07 10:29:37 +08:00
    百度百科的超线程的工作原理,建议也看下.
    QAPTEAWH
        16
    QAPTEAWH  
       2017-04-07 10:44:12 +08:00
    感觉就是 ALU 、 cache 不变,寄存器提供两套
    rockyou12
        17
    rockyou12  
       2017-04-07 11:42:47 +08:00
    虽然上面说技术的很多,但 lz 是 win10 嘛? win10 的任务管理器显示 cpu 占用是有 bug 的,应该会比实际占用显示的小很多
    NonClockworkChen
        18
    NonClockworkChen  
    OP
       2017-04-07 12:36:15 +08:00
    @rockyou12 不是 win10,只是 win7,多谢提示.
    yttyhf2006
        19
    yttyhf2006  
       2017-04-08 13:48:55 +08:00 via Android
    @rockyou12 什么原因,有链接吗?想看看
    rockyou12
        20
    rockyou12  
       2017-04-08 22:46:20 +08:00
    @yttyhf2006 http://www.bilibili.com/video/av6898414/ 这个视频最后说了这个问题。和我平时用的时候感觉一直,具体什么原因就不知道了
    NonClockworkChen
        21
    NonClockworkChen  
    OP
       2017-04-08 23:50:50 +08:00
    @rockyou12 那个湾湾讲的可以,这个老外的好像也很好
    NonClockworkChen
        23
    NonClockworkChen  
    OP
       2017-04-08 23:58:42 +08:00
    @rockyou12 极客湾视频的下面的第一个评论, 关于逻辑核物理核的好像是错的.
    但他讲的第二个关于 win7 任务管理器的不正常,貌似有那么一丢丢道理
    NonClockworkChen
        24
    NonClockworkChen  
    OP
       2017-04-08 23:59:13 +08:00
    @rockyou12 win10 上面手误
    NonClockworkChen
        25
    NonClockworkChen  
    OP
       2017-04-09 00:12:33 +08:00
    @rockyou12 我又看了几遍那个部分...好吧那个评论的理论也不能解释... 可能是有什么 bug 或者内部机制吧...
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1335 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 17:08 PVG 01:08 LAX 10:08 JFK 13:08
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86