设为首页 加入收藏

TOP

CPU工作方式、多核心、超线程技术详解[转贴](一)
2019-08-23 00:32:12 】 浏览:378
Tags:CPU 工作 方式 核心 线程 技术 详解 转贴

原文地址:https://www.cnblogs.com/taiyonghai/p/7244878.html

CPU是一台电脑的灵魂,决定电脑整体性能。现在的主流CPU都是多核的,有的运用了多线程技术(Hyper-threading,简称HT)。多核可能还容易理解些,相信不少玩家都能说出个所以然。但超线程是个什么东西,究竟有什么实际意义,一个支持超线程的CPU开启和关闭HT有什么不同,能解释清楚的人可能就不太多了。为此,我特地开此贴给大家介绍一下双核、超线程技术。此贴结合我平时自己工作中的积累、同厂商(英特尔)的交流经验、以及私下里作为一个DIY玩家的认识,力争做到最权威、最准确,同时保证通俗易懂,希望能用几个简单的例子让你迅速达到硬件专家的认识水平 。

 

不过事先说一下,

1)这是论坛帖子不是论文发表,有些知识点真的只能是点到为止。

2)有些只能是尽量准确,为保证通俗易懂,可能达不到学术级别的精准度。

3)本帖强调知识和理解。而现实中,究竟是花六七百买个i3,还是一千多买个i5,这个要具体情况具体分析,没有固定答案。

4)如果是土豪,只图一个‘爽’字。不求划算,只求最贵。这个帖子建议也不用看了,因为所有的理论都无法解释为什么挂QQ需要用到4核8线程的i7。

  

希望你看完此文后,从此装机选U不再困扰!!!!!

  

有经验的玩家应该都知道下面最常见的五种英特尔消费级CPU,说它们是消费级是为了和企业级处理器Xeon(志强)区分:

 

- 赛扬是双核,不支持超线程 - 入门玩家

- 奔腾是双核,不支持超线程 - 中低端玩家

- i3是双核,支持超线程 - 中端玩家

- i5是4核,不支持超线程 - 中高端玩家

- i7是4核,支持超线程 - 高端玩家

 

而志强的一些低端CPU,普通玩家也可以用,比如

- E3是4核,支持超线程 - 高端玩家

 

当然,变态级i7 Extreme可以达到6核12线程,8核16线程,不过一般都是发烧友买的,普通玩家中并不常见。

一些入门的E3,其实方案基本就是沿用i7,比如备受推崇的E3 1231v3,这个U性价比很高,其实就是去了集显、不能手动超频的i7。但价格却便宜了不少,所谓i5的价格,i7的性能。

 

CPU架构

要谈超线程和多核,就不得不谈CPU的架构和逻辑。无关的技术细节太多,这里略去。我们重点谈一下CPU中两个相关的模块:

1)Processing Unit(运算处理单元),简称PU

2)Architectual State(架构状态单元),简称AS

PU一般就是执行运算,比如算数运算加减乘除。AS执行一些逻辑和调度方面的操作,比如控制内存访问等。

  

单核CPU(先从简单的谈起)

一般一块传统意义的CPU上会有一个PU、一个AS。

 

比喻一个小饭馆(单核CPU),夫妻老婆店,老板兼大厨厨房炒菜,老板娘兼服务员点单。这不,来了一个客人,首先,走到老板娘的收银台前,看菜单准备点单。差不多5分钟后,客人点完了一份盖浇饭。老板娘抄好了单,递给了在后厨的老公。老公开始炒菜。在这个例子中,老板娘可以理解成AS,老板/大厨可以理解称PU(干实事的)。

  

多核CPU

这里说的多核,是多个物理核,比如i3的双核,i5的4核。这中架构下,每一个物理核都有一个PU和一个AS。所以。对于i3来说,就有总共两个PU,两个AS。对于i5来说,就有总过4个PU,4个AS。

 

比喻上面小饭馆的列子,对于5、6个客人可能还能忙的过来。但设想一下子来他个16个客人,这队估计要排到街上了。如果再告诉你,每10分种就有16个新客人过来点单。。。完了。生意估计是做不下去了 - 老板、老板娘忙到死。

这时,我们就需要一个更大的单位食堂(多核CPU)。有4个服务生、4个大厨。4个服务生同时点单,4个大厨同时开炒(1号服务生专给一号大厨下单,二号服务神生专给二号大厨下单。。。以此类推)。这样相比小饭馆一个老板娘、一个客人队列,这里成了4个队列,效率顿时比小饭馆提高4倍。16个客人,平均分配成4个队列,每个队列就只有4个客人了,情况是不是好了很多?

 

这个应该还是比较容易理解的。

  

超线程技术(HT)

重头戏来了,超线程是个啥玩意。他是我们平时说的多线程吗?

超线程(HT)并不是我们一般说的多线程。我们一般说的多线程(multi-threading)是指程序方面的,简单的说就是‘软’的,代码级别的。而超线程一般指的是硬件架构方面的,是‘硬’的:通过调整AS而模拟出来的‘逻辑核’

简单的说吧,超线程就是一个物理核里面,有两个AS,一个PU。两个AS共享一个PU。为什么这么做,看下面的例子:

 

比喻:刚刚那个单位食堂,4个服务生,4个大厨,4个队列。会不会效率问题?

有!

设想每个客人都有看单选单的时候,你能保证每个客人都看两眼就下单?有的客人难免会磨磨蹭蹭,问东问西,一个菜点它个15分钟。而设想大厨平均炒一个菜只要10分种。那剩下的那5分钟呢?大厨在厨房闲着没事干,喝茶看报纸。时间全被客人-服务生点菜这个环节给浪费掉了。

 

那有没有解决方法?我想大家应该都能猜出来了 

--- 增加服务生

 

这时候,我们给每个大厨多增加一个服务生,从一个服务生变成了两个服务生(AS),服务生1A和服务生1B开两个队列,同时给一个大厨(PU)下单。这样,当出现服务生1A的客人15分钟单子都没有下完的情况下,1B的客人单子很有可能3分钟下好送给大厨开炒了(PU),这样大厨就不会站在厨房傻等1A客人的订单。这样,最大限度地榨干大厨的劳动力 (大厨估计要骂娘了),而对于CPU来说,最大限度的提高了CPU的使用率,减少了CPU的(IDLE)空闲时间。有的时候,真不能怪大厨(PU)不卖力,而是你服务生(AS)叫单太墨迹。


  

在下图中,橙色和蓝色表明大厨(PU/CPU)是在工作的,白色格子表明大厨(PU)是空闲的。A图是单核没有没有用超线程,B图双核没有超线程,图C是单核启用了超线程。可以清晰地看到,从单核增加到双核(在没有超线程的情况下),CPU使用率并没有增加。而用了超线程后,整体CPU使用率提高了,虽然只是一个核。

 

  

左边的图是单核超线程,右边的图是双核,不带超线程。看出区别了吧?


  

现在来看实际中多核和超线程的相关问题:

1)i3 双核4线程,和i5 4核4线程,是一回事吗?

首先先说一下i3,i3是双核,开了HT以后,变成4个逻辑核(4线程)。最新的Win10我不知道,但在Win7里面逻辑核是被显示成物理核的,和i5一样。那i3和i5一回事吗?如果你觉得是一回事,那我上面的东东全都是白写了。

i3是4个服务生两个厨子,i5是4个服务生4个厨子,你觉得一样吗????

 

2)那i5 4核4线程,相比较开了HT的i7(4核8线程)一样吗?

i5是4个服务生4个厨子。i7如果开了HT,是8个服务生4个厨子。当然从C

首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Delphi 7~XE系列升级安装Indy10.6 下一篇没事做的Delphi版的俄罗斯方块游..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目