V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
NonClockworkChen
V2EX  ›  问与答

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

  •  
  •   NonClockworkChen · 2017-04-07 08:15:31 +08:00 · 3721 次点击
    这是一个创建于 2823 天前的主题,其中的信息可能已经有所发展或是发生改变。
    笔记本双核 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%也不能发挥全部性能,仍然有些器件经常空闲,超线程就是模拟一个核心,把这些空闲的器件用上
    NonClockworkChen
        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   ·   实用小工具   ·   2660 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 06:20 · PVG 14:20 · LAX 22:20 · JFK 01:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.