查看: 2625|回复: 10
收起左侧

[讨论] 题外话?关于核心core的那点事(普及版)

[复制链接]
caolizhen
发表于 2009-12-19 08:42:34 | 显示全部楼层 |阅读模式
本帖最后由 caolizhen 于 2009-12-19 09:17 编辑

首先,不得不提的是,这篇文章是鄙鱼的原创(虽然我感觉有点zol的感觉),转的话PM我一下就行。



       核心,这东西也不知道是什么时候开始炒的,记得当年AMD推出了双核心速龙4000+,不管是性能或是价格,绝对高高在上啊。而早期的PD,也就是奔腾D,同样也是双核心,不过却被人们认为是“胶水双核”,通俗点来说,就是把两个CPU合并成一个CPU,有点类似于服务器里应用的多CPU互联技术(在ocer见过一帖,具体什么技术忘记了,反正有个英文简写)。那么核心到底是什么,核心多了有什么用处,我想对于普通的消费者来说,这些知识还是比较实用的。

       红极一时的奔腾D

自称超频后可以秒掉酷睿的4000+

核心数目=性能?


       很多朋友都问过我这样一个问题,是不是核心数目越多性能就越好,我想很多喜欢DIY的朋友都明白,核心数目和性能并非挂钩的。这是为什么呢?记得《电脑爱好者》上有这么一个形象的比喻,CPU的核心数就好比炒菜用的锅的数目,如果要炒两份,多份菜的话,更多的锅炒起来更快一些。不知道这样对于一般的朋友是否可以理解。简单的说,如果我们处理的任务多了,那么核心固然是越多越好,但是仅仅是处理单个或者少量的任务,核心数目的提升的效果并不明显。
       当然还有一件不得不说的事情,目前许多软件对多核心的兼容性并不是太好,核心越多反而会让性能降低,就好象好几个人做一个工作,因为没有合理分配任务,所以会有重复工作或者很麻烦的数据等待问题,大大降低了工作效率。当然这是比较通俗的说法啦。
      
处理器的性能和啥有关系?

       既然处理器的性能和核心数目之间没有绝对的联系,那么处理器的性能究竟与那些因素有关呢?我想很多朋友都会有这种疑问。对于一般的朋友,最简单的方式就是看价格,价格越高,性能肯定越好,这是万年不变的真理,当然不同的用途也有不同的选择,如果喜欢多任务的朋友,那就选择三核心,四核心的处理器,如果喜欢游戏的朋友,可以选择高端的双核心处理器,前者拥有更强大的任务处理能力,后者在游戏或者单一任务中拥有较强大的能力。
       对于喜欢拽拽技术的DIYer来说,主频,缓存数目,架构这些当然都是不得不提得了,但是主频只能表明CPU单位时间内最多能发射的指令数,缓存也有相联这种技术而影响其命中率,架构也并不能完全决定CPU的性能,他们只能是定性研究的对象,定量的话,很难。

到此,普及内容完毕,接下来就是技术性较强的东东了(蛋疼的可以看看,实用主义者就可以跳过了,装X同学必读)




核心数的定义

       记得在很多论坛上都有说过GPU的核心,R870这东西就被众人称之为双核心GPU,而类似4870*2这种单卡设计也被称为双核心,如果这里的核心指的是Die的话,我没有任何意见,可是真正的核心数目是如何定义的呢?这里我只能说一下个人的见解,那就是PC的数量决定核心数。“什么,PC?个人计算机?大哥你开玩笑吧。”不得不承认现在的英文简写风行,那我换一个写法,Program counter 程序计数器。这东西就是我们俗称的指令发射器了,它实际上是一个寄存器,负责对指令地址进行加法操作。一般来说,一个核心只有一个PC用来发射指令,就算是超标量处理器,也只有一个PC,不过超标量的“超”体现在单位周期内可以执行多条指令,这些指令类似微指令,通过调度器对指令顺序,数目进行重新组合并分配给相应的处理单元,比如处理int的单元和处理float的单元,这样就可以达到更好的处理效果,从流水线这一层次看(不过这只是我个人的见解,希望大牛来指点,批评,3Q啦)。
       知道了核心数目的定义,我们再回顾一下一开始我提到的GPU核心问题。就目前的统一渲染构架来看,GPU绝对不止一个核心(而且据淫威大说人家CUDA能跑4096个线程,你觉得一个核心可能吗?)这里我们便可以深入理解关于ATI和NV对目前的统一渲染构架中的流处理器数目的定义问题了。先来看看NV的G80架构,作为一代经典,这款G80架构到现在依然可以驰骋江湖,G90和G300基本都是对它进行一些修正得来的。在G80中,一个1D处理单元对应一个指令发射端,拿8800U来说事的话,那么他就有128*1个核心,和128*1的处理能力(就是几D),习惯上我们称这种架构为标量模式。反观ATI的R600,它自称拥有320个SP,好像比8800U多很多的样子,实则不然,因为这里的SP定义不是核心数,而是处理能力,也就是几D。在R600中,一个流处理单元内拥有4D+1D的处理单元,而共享一个PC,也就是指令发射器,这实际上也就是一个超标量罢了,所以很多人们都知道R600的SP要除以5才能和NV进行比较,他们是在比较处理单元啊。
       我想平时喜欢看技术文的朋友对上面的见解一定会有所领回,总的来说,GPU并非是单核心的东西,而是多核心,像R870,或者SLI,CF这种东西,正确的叫法是多路GPU,而不是多核心GPU。


最后,再给各位一个明确的定义,CPU的性能和啥有关??如果忽略片外缓存,那么就是指令数目,时钟周期和CPI了,所以很多教科书上写主频是影响CPU的一大重要因素是有道理的,但是就是因为Intel这家伙不捣鼓主频,而去提升指令数目和CPI了,也就让很多蛋疼的朋友认为,“主频没用”,呵呵,挺有意思的。

最后的最后不得不提的,最近终于知道什么叫做推土机的逆向超线程了,就是两个单元跑一个分支。。。。。。我傻了。。。。。

最后的最后的最后。。。。。。。。要说一下,为什么CPU核心多了性能并不能按理想的线性进行增长呢?主要就是cache的一致性问题,不过这个话题真的要说起来,那就不是几百字几千字可以道尽的了,想了解的朋友可以去看看我的CPU工作原理那篇文章,你也许会找到答案呢!(不过缓存那一章节我好想很匆忙的就结束了,不知道写没写,实在不行在写一帖,当然要看大家的关注程度啦!)

评分

参与人数 4经验 +10 人气 +3 收起 理由
永远Ъù分手 + 10 精品文章
lorchid + 1 感谢分享!~
foreverhyx + 1 感谢小鱼分享,欢迎常来: )
Daigo + 1 感谢提供分享

查看全部评分

Daigo
发表于 2009-12-19 09:27:51 | 显示全部楼层
本帖最后由 Daigo 于 2009-12-19 09:52 编辑

全文章看完了,个别部分不太明白,看来还得再看看……
JY-YZX714
发表于 2009-12-19 09:52:31 | 显示全部楼层
早上好
caolizhen
 楼主| 发表于 2009-12-19 10:00:50 | 显示全部楼层
回复 3# JY-YZX714


    hi
caven
发表于 2009-12-19 10:08:06 | 显示全部楼层
支持楼主 受教啊
lorchid
发表于 2009-12-19 12:40:57 | 显示全部楼层
感谢分享基础知识!~
je-eee
发表于 2009-12-19 23:27:29 | 显示全部楼层
唉呀,收藏了再看一遍。。。
雪落竹林
发表于 2009-12-20 22:29:30 | 显示全部楼层
学习了,加入书签慢慢看
mich
发表于 2009-12-21 10:18:06 | 显示全部楼层
非常期待逆向超线程的到来!
现在压缩解压文件,CPU都是50%而且还是每个核心25%,CPU资源严重浪费了。(排除硬盘慢的情况下)
逆向超线程可以把2个甚至4个物理核心“模拟”成一个逻辑核心,来“加速”不支持多线程的程序!
小小梦
发表于 2009-12-21 17:53:58 | 显示全部楼层
嗯嗯   小鱼又写普及文了!  赞一个!∩0∩
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-1-24 08:32 , Processed in 0.121382 second(s), 17 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表