当前位置:

OFweek电子工程网

IC设计

正文

资深工程师解读5个被误解的CPU/GPU概念

导读: 目前,CPU处理器已经从服务器、PC发展到嵌入式、工控、消费、医疗等各个领域,但是从总体架构上来看,CPU的架构并没有太大改善,不过也有一些新的架构突破,作为一个一直跟CPU打交道的工程师,感觉很多人被一些概念误导,这里谈谈5个被误解的CPUGPU概念。

  从英特尔1971年推出第一款商用微处理器4004到现在,处理器已经走过了三十多年的历程,目前,CPU处理器已经从服务器、PC发展到嵌入式、工控、消费、医疗等各个领域,但是从总体架构上来看,CPU的架构并没有太大改善,不过也有一些新的架构突破,作为一个一直跟CPU打交道的工程师,感觉很多人被一些概念误导,这里谈谈5个被误解的CPUGPU概念。

  1、 多核与多线程

  提起多核与多线程,很多人首先会想到手机中的多核大战,而忘记了多线程技术,从单核到双核到四核再到8核,似乎多核才是处理器发展的王道,但是大家想过没有?为什么到了8核之后多核之战就打住了呢?多线程技术到底有没有优势?

  其实多核有个的缺陷就是随着内核数量的提升,性能的提升并不跟核数增加成正比,按照阿姆达定律:一个程序存在两部分,只能串行计算的部分S,和能够并行计算地部分P。两部分之和是整个程序,因此S+P=1。这个程序如果在一个具有N个核心的处理器上运行,那么和它在一个单核处理器上运行相比,速度的提升是1/(S + P/N)。当N趋近于无穷大时(即假设我们有无穷多个核心),速度提升的上限是1/S,即速度提升的上限取决于程序不能被并行计算的部分。

  这个定律的结果就是,即便我们能够有效地并行计算一个程序的 95%,剩下 5% 只能串行计算的部分限制了这个程序的运行速度最多能提升 1/5%=20 倍。而现有的程序中很少能够做到 95% 以上部分的并行计算。这张图显示了对于4种不同类型的程序(分别有50%,75%,90%,95%的部分能够并行处理)的速度提升相对于处理器核心数量的关系,纵轴是相对于单核处理器速度提升的倍数,横轴是处理器核心的数量。可以看到4条曲线随着处理器核心数量的增加逐渐趋于平坦。

  

  现在的多核处理器还远远没到拥有 1,000 个核心的时候。然而未来的某一天,不管是软件还是硬件工程师们也许会满头大汗地向客户解释这个问题:为什么最新的 1,000 核处理器比旧的 100 核处理器快不了多少?

  所以多核的发展路子是有局限的,再来看看多线程技术,多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。其实这个技术是非常好的,现在英特尔在PC处理器领域基本是走的多线程的路子。它最新的CPU都是四核8线程。

  多线程技术可以在不显著增加功耗和面积的条件下提供性能的稳定增加,举例来说,双核和单核双线程,每增加一个线程有50%稳定线性增加,但是对于多核来说,双核比单核有50%提升,但是三核只有30%提升,而四核只有20%的提升了。

  而且从开发难度来说,多线程开发难度要弱于多核,多核是需要大量人工优化的,后期需要芯片厂商和系统厂商投入大量的人力物力,而得益于英特尔的普及,软件系统对多线程的支持已经很成熟了,Linux早就支持多线程了,而且多线程开发是CPU自动分派任务不用人工参与,这样可以提升开发效率。

  所以,未来CPU的发展除了从32位升级到64位,在多核多线程的应用上不应该割裂开,多核多线程可以提升CPU的能效,解决性能和功耗的矛盾。

1  2  3  下一页>  
责任编辑:Alvin
免责声明: 本文仅代表作者个人观点,与 OFweek电子工程网 无关。其原创性以及文中陈述文字和内容未经本站证实, 对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅 作参考,并请自行核实相关内容。

我来说两句

(共0条评论,0人参与)

请输入评论

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码: