瑞星卡卡安全论坛

首页 » 技术交流区 » 硬件交流 » 计算机硬件大观-cpu篇(新)
追光 - 2009-8-25 15:39:00

前言


    本篇本着“不负责任”的态度:kaka12: ,以自己所了解的知识,以平常人的视点来“观”电脑的主要硬件。
    本文其实是对于硬件一些常见的名词解释,但尽量不引用生涩难懂的专业术语,对于经常接触硬件,但对名词概念比较模糊的朋友们应有较大的帮助。但本人知识有限,难免出现疏漏以及偏差,请大家踊跃补充和指正。如果您有兴趣继续钻研,建议您去阅读一些有关的高级教材。
    最后,在您观看文章时最好将整篇文章全部看完后,再看括号中的注释。

Cpu(中央处理器)篇






    简单说,Cpu是一由块纯净的硅(一种半导体材料),通过光刻蚀和掺杂等方法使纯净硅形成门电路,经过测试封装后就是我们见到的cpu了。
    cpu在电脑中的主要作用就是将用户的命令进行运算(运算不单指数xxx算,还包括图形运算、逻辑运算等,这里将cpu的所有工作统称为“运算”)(没有看错,虽然现在显卡负担了大部分的图形运算,但仍有cpu参与)然后将运算结果反馈并由相关硬件输出结果。
    首先,cpu经过这么多年发展,已经产生N代的产品,cpu不同代产品在表面都标有对应的型号,可搜索“cpu型号表”来查询。另外不细分的话还有一个最简单的区分方法就是看接口类型了(还是有相同接口类型但是分代的产品)例如现在AMD主流的AM2接口因为cpu下面有940根插针(没数过)我们又常叫它940接口。还有intel主流的SOCKET 775接口,不过它的cpu下面却都是触点,775(仍没数过)触脚都在主板上,当然,也例行的称它为775接口。早期还有:(从奔腾时代开始,更早的X86系列接触过少。另全以针脚数来区分,熟悉SOCKET和SLOT接口的朋友可以给出对应表)
321接口:代表有奔腾mmxAMD K6等等
370接口:代表有intel奔腾2、奔腾3via C3等等
423接口:最早的奔腾4采用此接口
462接口:代表有amd早期K7、雷鸟、毒龙,近期的速龙,闪龙等等,此接口amd使用了相当长的时间
478接口:代表有intel 478奔腾4全系列
754接口:amd速龙64fx系列
939接口:754的升级接口,amd速龙64fx系列。940接口的上代产品,上市时间相当短,然后就被940所取代
    其实还有相当多的接口类型,但不常见或使用在服务器上,有兴趣的朋友可以查阅资料。
    cpu的主频是用外频*倍频得出的,是用来表示cpu的运算、处理数据的速度。虽然主频是越高越好,但主频不过是其中的一个参数,是不能完全代表CPU的性能的(没记错的话,主频是指cpu每秒计算加法的次数)。
    外频是cpu的基准频率,不过外频的意义在于它决定了主板的运行速度。对于服务器,主板须和cpu外频同步(同步是指工作频率相同),以免因为异步产生的不稳定(不过多数的台式机主板是支持异步的,不然怎么超频)。通常情况下,外频也是内存与主板之间的运行速度,在这种方式下,可以理解为CPU的外频直接与内存相连通,实现CPU与内存同步。(CPU、主板和内存都同步的配置,个人认为是最理想的)(早期的CPU外频和前端总线是相同的,所说的外频或前端总线是同一意思,但两者的意义并不相同)
    前端总线(fsb)通常是用来计算cpu与内存之间带宽用的,公式是:数据带宽=(总线频率×数据位宽)/8(例如一个64位,100MHz的前端总线,数据带宽=100MHz×64bit÷8bit/Byte=800MB/s,这个数据就是CPU每秒钟可接受的数据传输量)。简单解释下带宽,带宽并不是指传输的数据多少,而是给数据一个“通道”,这个“通道”所能通过的大小叫做带宽的大小。计算机中带宽的大小是指单位时间里,能吞吐最大数据量,所以大家不要把带宽和硬件处理数据量搞混了。当然了,如果带宽大小不能满足硬件的处理数据量,就会形成瓶颈,影响硬件性能发挥了。相对前端总线,HyperTransport是近几年AMD CPU所使用的一种架构,单位也为MHZ,仍是用来计算带宽的(不同于前端总线,HyperTransport是为主板上的集成电路互连而设计的端到端总线技术,可以在内存控制器、磁盘控制器以及PCI总线控制器之间提供更高的数据传输带宽。HyperTransport I/O总线体系结构让AMD的CPU整合了内存控制器,使处理器不通过系统总线传给芯片组而直接和内存交换数据。对于这样的情况,前端总线(FSB)频率在使用HyperTransport架构的AMD处理器中就不存在了。
    关于CPU的倍频,从计算CPU主频的公式上就可以看出,倍频即主频与外频之比的倍数,和性能基本无关。在相同的外频下,倍频越大,CPU的主频也就越高,但既然外频不变CPU与系统之间数据传输速度有限,就会形成系统提供的数据不能满足CPU运算速度的瓶颈。
    缓存对CPU的性能有直接的影响。在实际工作中,CPU经常需要重复读取同样的数据块,而有了缓存后,就可以把这类数据存放在缓存里,而且因为CPU缓存的速度远远高于内存和硬盘,所以可以大幅度提升CPU性能,但因为芯片面积(CPU外壳大小不过几厘米见方,核心就更小了)和成本(比内存贵多了)限制,缓存都不大。缓存分有一级缓存、二级缓存和三级缓存。一级缓存是一种“静态RAM”(对于RAM和rom,在内存篇中介绍),分有数据缓存区和指令缓存区,分别用来存放数据和处理数据的指令。二级缓存采用的是“高速动态ram”(比普通“动态ram”速度要快),性能不如“静态ram”,但有更高的集成度(占据空间小,静态是动态体积的6倍左右)和相对比较低的成本(静态是动态的4倍左右),是一种提升性能,但控制成本的办法。三级缓存的功能和二级缓存几乎相同,就不再单独介绍。从理论上讲,在一颗拥有二级缓存的CPU中,首先读取一级缓存,命中率约为80%。也就是说CPU一级缓存中找到的有用数据约占数据总量的80%,然后剩下的20%从二级缓存中读取,命中率约16%,如果还找不到就只能到内存中找。所以在CPU核心不变的情况下,增加二级缓存可以大幅提升CPU性能。
    下面介绍个简单的知识:cpu的位。在电脑中采用的是二进制,代码只有“0”和“1”,所有的程序都是0和1这两个代码组成,每一个代码在CPU中都是一“位”。在电脑单位换算中,1字节=8位(位是电脑最小的单位。1kB=1024字节,1MB=1024kb,1gb=1024mb,1tb=1024gb)。下面就好理解了,32位cpu就代表单位时间内能处理32位,等于4个字节,64位就是能处理64位,等于8个字节了。
    常说的多核心,指单芯片多处理器(多个CPU共同工作的组成方式常在服务器或大型、巨型计算机上使用,例如“银河”超级计算机),也就是将多个处理器集成在同一个芯片内,各个处理器并行(同时)执行不同的进程。这的好处是多个程序一起运行时,多个处理器分别处理,效率远远高于单个CPU(可以理解成有好多事情,多人干要比一个人干快),不过对于运行单独程序,多核并没有明显的性能优势。
    说起多核,想到早先时候,Intel所使用的“超线程”技术,虽然在“任务管理器”中也是显示2个CPU,但并不是实际上的双核,而是利用CPU的剩余资源(有超线程技术的cpu都在2G以上,处理普通的程序往往只用不到百分之50的资源),通过主板芯片、操作系统等的支持,来模拟出另一个CPU。对于简单的多程序运行,“超线程”还是体现出一些优势。(大型程序?1个程序就把CPU资源占完了,这个时候超线程就完全没有意义了)
    每次cpu的升级换代,都是核心电路设计的进步。对于核心我们可以简单的理解为,核心设计的越好,cpu的执行效率越高。这样在相同的频率下,核心越好,处理命令的速度越快。例如频率相同(当然还有缓存的区别,但不能算主要原因)的奔腾2和奔腾3(指接口相同并且可用在同一主板上早期产品)在处理同一任务时,奔腾3处理速度明显领先于奔腾2。(这也是奔腾4时代,为什么amd的低频率cpu丝毫不逊于intel高频cpu的主要原因,虽然也有硬件软件方面对奔腾4支持不好的原因)
    集成在cpu中的扩展指令集,作用是增强cpu执行对应程序的效率,最有名的应属intel的奔腾mmx(增强CPU在音像、图形和通信应用方面的性能)AMD的3DNow!了(作用是增强cpu的3D运算性能,尤其在3DMAX等软件应用时)。当年intel独大时,AMD就是靠3DNow!扩展指令集(当然不单单是)抢占了一部分市场。不少人都认为,如果当初没有3DNow!指令集,amd能否存活并发展到能几乎能和intel比肩的如此高度。
    这里还有一个大家不太关注的地方,那就是cpu的功耗了,功耗越小,发热量就越小(当初754接口的amd部分cpu就是靠低功耗的市场宣传占据了不少的市场。实际测试,十几分钟不用散热器真没问题,长时间没敢试),耗电也跟着降低了。



    对于cpu,以上只是大家常见到的一些名词的解释,而像“指令集”这类能写一本书的“非主流”知识,大家都可通过搜索资料来自行学习。

用户系统信息:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
sinoer - 2009-8-25 15:41:00
想了解这方面的知识,去intel、IBM、amd等厂商的网站看技术白皮书会更有收获
追光 - 2009-8-25 15:46:00
相较第一篇发表的文章,这次增加了更多的知识,但相对较为难理解的术语也多了起来。
    不管怎么说,对于上次推迟所做的承诺终于兑现了,一身轻松,一身轻松。:kaka12:
追光 - 2009-8-25 15:47:00


引用:
原帖由 sinoer 于 2009-8-25 15:41:00 发表
想了解这方面的知识,去intel、IBM、amd等厂商的网站看技术白皮书会更有收获

      是的,想了解更专业的知识,请查阅编辑严谨,资料丰富的官方“白皮书”。:kaka1:
sinoer - 2009-8-25 15:47:00
欢迎更新,多讲讲工艺、架构、指令集、能效等等
追光 - 2009-8-25 15:56:00


引用:
原帖由 sinoer 于 2009-8-25 15:47:00 发表
欢迎更新,多讲讲工艺、架构、指令集、能效等等

      要这种专业东西最好办了,到网上来个复制粘贴就成了:kaka12: 。不过,这种复制粘贴没意义的事情,好没动力地。:kaka16:
      下篇是内存,随后还有显卡、主板、硬盘等常见硬件名词的介绍。发表完后,我去翻翻相关资料,如果自认能对你所说知识有独到见解,我也就不私藏了,“大放厥词”一下,博大家一观。:kaka18:
1
查看完整版本: 计算机硬件大观-cpu篇(新)