浅谈多核心CPU和SoC芯片及其工作原理

浅谈多核心CPU和SoC芯片及其工作原理,第1张

姓名:吕红霞;学号:20011210203;学院:通信工程学院

转自https://mpweixinqqcom/s/rULXlihPLhZCjnGhbMbCMg

嵌牛导读 本文讲解了多核心CPU和SoC芯片及其工作原理

嵌牛鼻子 多核CPU,进程,线程

嵌牛提问 现在的CPU或SoC基本都是在单芯片中集成多个CPU核心,形成通常所说的4核、8核或更多核的CPU或SoC芯片。为什么要采用这种方式?多个CPU 核心在一起是如何工作的?CPU核心越多就一定越好吗?

嵌牛正文

要说明什么是多核心CPU或SoC芯片,首先要从CPU核心(Core)说起。我们知道,CPU是中央处理器(Central Processing Unit)的英文简称,它具有控制和信息处理的能力,是电脑和智能设备的控制中枢。如果把传统CPU芯片中的封装和辅助电路(例如引脚的接口电路、电源电路和时钟电路等)排除在外,只保留完成控制和信息处理功能的核心电路,这部分电路就是 CPU核心 ,也简称CPU核。一个CPU核心基本上是一个完全独立的处理器,它可以从内部存储器中读取指令,并执行指令指定的控制和计算任务。

如果把 一个 CPU核心和相关辅助电路封装在一个芯片中,这个芯片就是传统的 单核心CPU芯片 ,简称单核CPU。如果把 多个 CPU核心和相关辅助电路封装在一个芯片中,这个芯片就是 多核心CPU芯片 ,简称多核CPU。当然,多核心CPU芯片会包含更多的辅助电路,以解决多个CPU核心之间的通信和协调问题。

如果在多核心CPU芯片中再集成一些其它功能部件和接口电路,就形成了完整的系统,那么这个芯片就变成了 多核心SoC芯片 了,简称多核SoC。在不严格区分的情况下,SoC也可以称为CPU。

发展多核心CPU的初心源于“人多力量大”的简单道理。从这个意义上来看,当初芯片集成度不高的时候,Inteli8086 CPU和i8087协处理器应该算是多核心CPU的雏形,是 多芯片协作形成了一个处理核心 ,需要采取许多技术来解决CPU和协处理器之间的合作、协作问题。

今天芯片的集成度很高,单芯片中集成几个甚至几十个CPU核心已不在话下,但还是不能满足超级计算的需要,需要在超级计算机中使用成千上万块高性能CPU芯片一起合作、协作,这可以看作 芯片内 多核心、 芯片外 多芯片的多核心CPU集群。

CPU芯片从外观上看是一块芯片,但打开封装来看,内部可能只有一块裸片(die),也可能是多块裸片封装在一起,称为 多芯片模组 (Multichip Module,简称 MCM ),如图2b所示。但从软件角度来看,封装形式无关紧要,无论是芯片内还是芯片外,CPU核心多少才是最重要的,它们决定着系统的并行运算和处理能力,它们的主频频率和核心之间通信方式决定了系统的处理速度。

另外,今天的桌面计算机CPU、手机SoC中还集成了许多图形处理器(GPU)核心、人工智能处理器(APU)核心等,这些是否也应该算作多核心CPU和SoC中的“核心”呢?我觉得从广义角度上应该算吧。

因此,要回顾多核心CPU的发展,大致可以分为 1 雏形期; 2 单芯片单核心; 3 单芯片多核心; 4 单核心多芯片; 5 多核心多芯片几种情形。这些发展阶段不一定按照这个前后顺序,可能有交叉时期,也可能有前后颠倒的情形。第2和第3种情形一般是应用在桌面计算机、智能手机等移动终端上的CPU芯片,第4和第5种是应用在服务器和超级计算机上的CPU芯片。本文限于篇幅和主题集中的需要,主要探讨第3种 单芯片多核心 的情况,这种情况下的CPU是 单芯片多处理器 (Chip Multi Processors,简称 CMP )模式。

1971 ~2004年,单核心CPU一路独行 。Intel公司1971年推出全球首款CPU芯片i4004,直到2004年推出超线程的Pentium 4 CPU系列,期间共33年时间。在这期间,CPU芯片很好地沿着摩尔定律预示的规律发展,沿着集成度不断翻倍、主频不断提升、晶体管数量快速增加的道路前进,这是一条单核心CPU不断迭代升级的发展之路。

但是,当晶体管数量大幅增加导致功耗急剧增长,CPU芯片发热让人难以接受,CPU芯片可靠性也受到很大影响的时候,单核心CPU发展似乎到了穷途末路。摩尔定律的提出者 戈登摩尔 也依稀觉得“尺寸不断缩小”、“主频为王”这条路子即将走到尽头。2005年4月他曾公开表示,引领芯片行业接近40年的摩尔定律将在10~20年内失效。

其实,早在上世纪90年代末,就有许多业界人士呼吁用CMP技术实现的多核心CPU替代单线程单核心CPU。IBM、惠普、Sun等高端服务器厂商,更是相继推出了多核心服务器CPU。但是,由于服务器CPU芯片价格太高、应用面较窄,并未引起大众广泛关注。

2005年初AMD抢先推出了64位CPU芯片,并率先Intel发表声明保证其64位CPU的稳定性和兼容性,Intel才想起了利用“多核心”这一武器进行“帝国反击战”。2005年4月,Intel仓促推出简单封装的2核心Pentium D和Pentium4至尊版840。之后不久,AMD也发布了双核心皓龙(Opteron)和速龙(Athlon)CPU芯片[9]。

2006 年被认为是多核心CPU的元年 。这年7月23日,Intel基于酷睿(Core)架构的CPU发布。11月,Intel又推出了面向服务器、工作站和高端PC机的至强(Xeon)5300和酷睿2双核心和4核心至尊版系列CPU。与上一代台式机CPU相比,酷睿2双核心CPU在性能方面提高40%,功耗反而降低40%。

作为对Intel的回应,7月24日,AMD宣布对双核Athlon64 X2处理器进行大降价。两大CPU巨头在宣传多核心CPU时,都会强调其节能效果。Intel发布的低电压版4核心至强CPU功耗仅为50瓦。而AMD的“Barcelona”4核心CPU的功耗也没超过95瓦。在Intel高级副总裁Pat Gelsinger看来,摩尔定律还是有生命力的,因为“CPU从单核心到双核心,再到多核心的发展,可能是摩尔定律问世以来,CPU芯片性能提升最快的时期” [9]。

CPU 技术发展要比软件技术发展更快 ,软件对多核心CPU的支持相对滞后。如果没有操作系统的支持,多核心CPU的性能提升优势不能发挥出来。同样运行Win7的情况下,4核心CPU和8核心CPU所带来的差异化体验并不明显,导致这种情况的原因是Win7根本没有对8核心CPU进行相应的优化。而在Win10出来后,8核心CPU所带来的体验速度就明显要比4核心处理器快很多,这源于微软在Win10上对多核心CPU的支持做了优化。而且微软还将在Win10上针对多核心CPU做进一步适配优化。

目前 核心最多的服务器CPU 有Intel至强铂金9282,56核心112线程,引线焊球多达5903个,估计售价约4万美元;AMD霄龙 7H12,64核心128线程,散热设计功耗280W。这两款CPU都需要采用液冷散热。 核心最多的台式机CPU 有Intel酷睿i97980XE至尊版,18核心36线程,散热设计功耗165W,售价1999美元;AMD的Ryzen9 5950X,16核心32线程,散热设计功耗105W,售价6049元。 核心最多的手机SoC 有Apple M1、麒麟9000、高通骁龙 888等。多核心CPU或者多核心SoC似乎成为一种潮流,但是不是核心越多CPU就越好呢?在不考虑其它因素影响,单从技术和集成度考虑的话,有人甚至预测到2050年,人们可能会用上1024个核心的CPU芯片。

我们先从任务处理的角度来看这个问题。如果把CPU处理的事情叫做任务的话,以前的CPU只有一个核心,CPU只会“一心一用”地处理一个任务,干完一件事再接着干下一件事。专业上称之为 串行单任务处理 。这在DOS操作系统的时代是合适的,这个时期对CPU的追求只有一条,那就是处理速度要尽可能地快。在Windows操作系统出现后,出现了多任务的处理需求,要求CPU可以“一心多用”,同时干多件事情。专业上称之为 分时多任务处理 。这个时期对CPU的追求 一是 处理速度要尽可能地快, 二是 同时可处理的任务尽可能地多。其实这种“一心多用”的处理方法是把时间分配给了多个任务,从宏观上看CPU处理的任务多了,但从某项任务来看CPU对该项任务的处理速度变慢了。

要实现CPU处理的任务更多、处理速度更快,人们自然想到了在芯片中集成多个CPU核心,采用“多心多用”的方式处理事务,因而就出现了多核心CPU的需求,而这种需求在服务器CPU应用方面显得尤为迫切。

我们再从提高CPU时钟频率,加快处理速度的角度来看这个问题。无论是“一心一用”、“一心多用”、还是“多心多用”,只要提高了CPU的时钟频率,CPU的处理速度都会加快。如论是单任务还是多任务,就会在更短时间完成任务。因此,CPU发展的历史就是随着芯片技术的进步,CPU的时钟频率不断提升的历史,从早期的MHz级别不断提升到目前的GHz级别,大约提升了1000倍左右。无论是单核心还是多核心,CPU时钟频率是人们选用CPU芯片的重要指标。

过去很长一段时间里,随着Intel和AMD CPU速度越来越快,x86操作系统上的软件的性能和速度自然会不断提高,系统整机厂家只要对现有软件作轻微设置就能坐享电脑系统整体性能提升的好处。

但是随着芯片工艺沿着摩尔定律发展,CPU集成度提高、晶体管密度加大,时钟频率提升,直接导致CPU芯片的功率不断增大,散热问题成为一个无法逾越的障碍。据测算,CPU主频每增加1GHz,功耗将上升25瓦,而在芯片功耗超过150瓦后,现有的风冷散热将无法满足要求。2003年前后Intel推出的主频为34GHz的Pentium4至尊版CPU芯片,最高功耗已达135瓦,有人给它送了一个“电炉”的绰号,更有好事者用它来玩煎蛋的游戏。现在的服务器CPU芯片Xeon W-3175标称功耗为255W,默认频率实测能达到380W,超频的话甚至会突破500W,必须采用高端水冷系统来降温。

所以,功耗极限制约着CPU频率的提升。下图是CPU功率密度随时间的变化趋势图,IntelPentium之后的CPU芯片,由于晶体管密度和时钟频率提升,CPU芯片的功率密度陡然上升,CPU产生的热量将会超过太阳表面。

综上所述,追求多任务处理功能,追求处理速度提升是CPU芯片设计的两大目标。以提升CPU时钟频率而加快处理速度又受到CPU功耗极限的制约,多核心CPU芯片成为解决上述矛盾的必由之路。目前,多核心CPU和SoC已成为处理器芯片发展的主流。

与单核心CPU相比,多核心CPU在体系结构、软件、功耗和安全性设计等方面面临着巨大的挑战,但也蕴含着巨大的潜能。本文参考了后附的参考资料1,对多核心CPU用到的技术作如下简单介绍。

1 超线程技术

一个传统CPU核心只有一个运算处理单元(Processing Unit,简称PU)和一个架构状态单元(Architectual State,简称AS),在同一时间只能处理一个软件线程(Thread)。采用了 超线程 (Hyper-Threading,简称 HT )技术的CPU核心中包含一个PU和两个AS,两个AS共用这个PU。软件在CPU核心上运行时,AS与软件线程对接,并把线程的任务分配到PU中的相关单元中。所以,两个AS就可以处理两个软件线程。

用生产车间打个比方,PU是生产部门,有几台机床用于生产;AS是跟单员,他同时只能跟一个任务订单;软件线程好比是任务订单。如果生产车间只有一个AS时,这个车间同时只能处理一个任务订单,PU的有些机床有事干,有些机床可能无事干而闲置。如果有两个AS时,就能处理两个任务订单,并把任务分配到不同的机床上去完成。

所以,具有超线程的CPU核心的集成度增加量不大,但有两个AS后使它看起来像两个逻辑的CPU核心,就可以同时处理两个软件线程,大约可以提高40%的处理能力。所以,我们经常可以看到CPU芯片广告,说某多核心CPU芯片是N个核心,2×N个线程,就是采用了超线程带来的好处。否则,如果没有采用超线程技术的话,多核心CPU芯片参数就只能写成N个核心,N个线程。下图给出了2核心CPU无超线程和有超线程的示意图。

2 核心结构研究

多核心CPU的结构分成 同构 (homogeneous)多核和 异构 (heterogeneous)多核两类,同构多核是指芯片内多个CPU核心的结构是相同的,而异构多核是指芯片内多个CPU核心的结构各不相同。面对不同的应用场景,研究核心结构的实现方式对CPU整体性能至关重要。核心本身的结构,关系到整个芯片的面积、功耗和性能。怎样继承和发展传统CPU的成果,也直接影响多核的性能和实现周期。同时,核心所用的指令系统对系统的实现也是很重要的,多核心采用相同的指令系统还是不同的指令系统,能否运行操作系统等,也是设计者要研究的重要问题。

3Cache 设计技术

CPU和主存储器之间的速度差距对多核心CPU来说是个突出的矛盾,因此必须使用多级Cache来缓解。可分为共享一级Cache、共享二级Cache和共享主存三种方式。多核心CPU一般采用共享二级Cache的结构,即每个CPU核心拥有私有的一级Cache,并且所有CPU核心共享二级Cache。

Cache本身的体系结构设计直接关系到系统整体性能。但是在多核心CPU中,共享Cache或独有Cache孰优孰劣、是否在片上建立多级Cache、以及建立几级Cache等,对整个芯片尺寸、功耗、布局、性能以及运行效率等都有很大的影响,需要认真研究和慎重对待。同时还要考虑多级Cache引发的一致性问题。

4 核心间通信技术

多核心CPU的各核心同时执行程序,有时需要在核心之间进行数据共享与同步,因此硬件结构必须支持CPU核心间的通信。高效通信机制是多核心CPU高性能的重要保障,比较主流的片上高效通信机制有两种, 一种 是基于总线共享的Cache结构,另 一种 是基于片上的互连结构。

总线共享Cache结构 是指每个CPU核心拥有共享的二级或三级Cache,用于保存比较常用的数据,并通过核心间的连接总线进行通信。它的优点是结构简单,通信速度高,缺点是基于总线的结构可扩展性较差。

片上互连的结构 是指每个CPU核心具有独立的处理单元和Cache,各个CPU核心通过交叉开关电路或片上网络等方式连接在一起。各个CPU核心间通过消息进行通信。这种结构的优点是可扩展性好,数据带宽有保证,缺点是硬件结构复杂,且软件改动较大。

5 总线设计技术

传统CPU中,Cache不命中或访问存储器事件都会对CPU的执行效率产生负面影响,而总线接口单元(BIU)的工作效率会决定此影响的程度。在多核心CPU中,当多个CPU核心同时要求访问内存,或多个CPU核心内私有Cache同时出现Cache不命中事件时,BIU对这些访问请求的仲裁机制效率,以及对外存储访问的转换机制的效率决定了多核心CPU系统的整体性能。

6 针对多核心的操作系统

对于多核心CPU,优化操作系统的 任务调度 是提升执行效率的关键。任务调度算法有 全局 队列调度和 局部 队列调度之分。前者是指操作系统维护一个全局的任务等待队列,当系统中有一个CPU核心空闲时,操作系统就从全局任务等待队列中选取就绪任务开始在此核心上执行。其优点是CPU核心利用率较高。后者是指操作系统为每个CPU核心维持一个局部的任务等待队列,当系统中有一个CPU核心空闲时,便从该核心的任务等待队列中选取就绪任务来执行。其优点是有利于提高CPU核心局部Cache命中率。大多数的多核心CPU操作系统采用的是基于全局队列的任务调度算法。

多核心CPU的中断处理和单核CPU有很大不同。CPU核心之间需要通过中断方式进行通信和协调,所以,CPU核心的本地中断控制器和仲裁各CPU核心之间中断的全局中断控制器需要封装在芯片内部。

另外,多核心CPU操作系统是一个多任务系统。由于不同任务会竞争共享资源,因此需要系统提供同步与互斥机制。而传统的用于单核心CPU的解决机制并不能满足多核心的情况,需要利用硬件提供的“读-修改-写”的原始操作或其他同步互斥机制来进行保证。

7 低功耗设计技术

每两三年CPU晶体管密度和功耗密度都会翻倍。低功耗和热优化设计已经成为多核心CPU设计的重点。需要同时在操作系统级、算法级、结构级、电路级等多个层次上考虑。每个层次上实现的效果不同,抽象层次越高,功耗和温度降低的效果越明显。

8 可靠性及安全性设计技术

在今天的信息社会,CPU的应用无处不在,对CPU的可靠性和安全性提出了更高要求。一方面多核心CPU复杂性提高,低电压、高主频、高温度对维持芯片安全运行带来挑战。另一方面,来自外界恶意攻击越来越多,手段越来越先进,高可靠、安全性设计技术越来越受到重视。

要弄明白多核心CPU是如何工作,要从应用程序、操作系统和CPU核心一起来分析。Windows操作系统作为任务调度者,按照 进程 (Process)和 线程 (Thread)为应用程序(Program)分配程序执行的硬件资源——CPU核心。一个进程对应一个应用程序,但是一个应用程序可以同时对应多个进程,通过多个进程来完成这个程序的执行。

应用程序未执行的时候是“静态”的,程序一旦被用户启动执行,就被操作系统接管变成“动态”的了。操作系统按照一个一个的 进程 管理着一批被用户启动了的程序。所以一个 进程 可以看作是一个“执行中的程序”,进程中包括了由操作系统分配给这个程序的基本资源。

一个进程又被细分为多个 线程 ,只有 线程 才能通过操作系统获得CPU核心的使用权限来让自己运行。只包含一个线程的进程可以叫做 单线程 程序,如果包含多个线程的进程,就可以叫做 多线程 程序了。

程序的线程要想获得CPU时间,必须进入操作系统的线程队列排队,经过操作系统调度之后,获得某个CPU核心的执行时间。操作系统对CPU核心的分派是非常复杂的过程,谁也无法用简短的文字说清楚具体详细的过程。以下按单核心CPU和4核心CPU两种情况来示意说明,程序进程的一个个线程,是如何分派到CPU核心上进行执行的[7]。

如果CPU是单核心的话,而且没有采取超线程技术,线程队列就只有1个,线程的选择也只有1个。如果采取了超线程技术,单核心就扩展成2个逻辑核心,线程队列就有2个,线程的选择就有2个。

如果站在多核心CPU角度看,每个CPU核心不断从操作系统收到要执行的软件线程,按照程序指令去完成规定任务,它可能要使用存储器、运算器、输入输出等部件,还要与其它CPU核心进行通信和传递数据,完成任务后还要报告。这些过程可看成一个一个的事件,都要通过事件中断处理部件来协调。多核心CPU的硬件调度处理模式大致有三种[8][18]。

1 对称多处理 (Symmetric Multi-Processing,简称 SMP )是目前使用最多的模式。在SMP模式下,一个操作系统同等地管理着各个CPU核心,并为各个核心分配工作负载。目前,大多数的操作系统都支持SMP模式,例如Linux,Windows,Vxworks等。另外,这种模式通常用在同构多核CPU上,因为异构多核CPU的结构不同,实现SMP比较复杂。

2 非对称多处理 (Asymmetric Multi-Processing,简称 AMP )是指多个核心相对独立地运行着不同的任务,每个核心可能运行不同的操作系统或裸机程序,或者不同版本的操作系统,但是有一个 主导 的CPU核心,用来控制其它 从属 的CPU核心以及整个系统。这种模式大多情况是异构多核心CPU。例如MCU + DSP,MCU +FPGA等。当然,同构多核心CPU也可以用。

3 边界多处理 (Bound Multi-processing,简称 BMP )与SMP基本相同,唯一区别是开发者可以定义某个任务仅在某个CPU核心上执行。

以上只是原理性的简单介绍,如果要了解多核心CPU的硬件调度原理和实现细节,恐怕只能打进Intel或AMD公司内部,才能了解更多技术详情。

多核心CPU中的核心是否越多越好,多CPU系统中的CPU芯片是否也越多越好?同样条件下是否具有超线程就比不具有超线程的好?回答是仁者见仁,智者见智。主要是要分清用在哪些场合,不能一概而论。

首先,多核心CPU或者多CPU之间需要同步和调度,这是以时间开销和算力损耗为代价的。如果CPU核心数或者CPU芯片数增加对系统处理能力提升是加分项的话,同步和调度带来的时间开销和算力损耗就是减分项。如果加分大于减分,而且成本增加可接受的话,则方案是可行的,否则就是不值当的方案。系统方案的评判除了要考虑CPU核心数量以外,还要考虑操作系统的差异、调度算法的不同,应用和驱动程序特点等因素,它们共同影响着系统的处理速度。以下是一些文章的讨论观点。

1 CPU核心越多,执行速度不一定越快。这里说的是“不一定”,因为一个线程可能要等待其它线程或进程完成后,才能轮到它继续执行。在它等待别的线程或进程的时候,即便排队队列轮到了它,它也只能放弃运行权利而继续等待,让队列后续线程超过它在CPU上执行。对它这个线程的程序来说是变慢了,但对系统来说,它起码它让开了位置让其它线程继续运行。多核心CPU肯定可以加速批量进程的执行,但对某个进程或者某类型的程序来说,未必是最快的。

2 智能手机要向用户提供优秀的使用体验,不仅仅是靠CPU性能一个方面。除了CPU核心数这个因素以外,还应包括决定通信质量的基带芯片的性能,再加上GPU的性能、游戏和VR应用性能等。系统综合性能好才是真的好。

3 联发科2015年推出10核心、3重架构等手机SoC芯片技术,后来又开发了10核心、4重架构helio X30,通过多重架构的方式来降低功耗。虽然联发科在多核心SoC方面的技术优势是毋庸置疑,但是高通在2015年底推出了仅有四个核心的骁龙820芯片,苹果手机较早使用的SoC芯片也不过是双核心而已。这些都表明,对于智能手机而言,多核心CPU或SoC的意义到底大不大,不可绝对断言,需要从系统角度分析才能得出正确结论。

结语 :多核心CPU和SoC是为了满足整机系统对处理能力和处理速度不断提升的需求,在单核心CPU沿着摩尔定律向前发展,受到了芯片功率极限阻碍时,人们不得不选择的一种突破路线。多核心CPU推动着操作系统的更新和升级,操作系统又决定了多核心CPU效能的发挥。多核心CPU技术的难点是多核心之间的信息传递、数据同步和任务调度等。系统性能优劣不能只考虑CPU核心数量,还要考虑操作系统、调度算法、应用和驱动程序等。多核心CPU技术和FinFET等3D芯片技术可以看作是延续摩尔定律生命的两大关键技术。

1、主频:主频是CPU的时钟频率,也就是它的工作频率,目前市场上的CPU频率在2-4GHz左右,部分CPU例如Intel的core i7不光有固定频率,还可以超频。很显然,相同配置下频率越高,性能越高。

2、架构:这个大家可能不注意,但是架构的更新对于CPU来说将会是进化的一场革命,性能会带来质的飞跃。目前Intel、AMD的CPU是X86架构,IBM公司的CPU是PowerPC架构,ARM公司是ARM架构。

3、制造工艺:主要的工艺规格有180nm、130nm、90nm、65nm、45nm、22nm,现在的制造工艺已经达到14nm,如Intel的8代CPU系列。制造工艺标志着以更高的精度在更小的面积上作出性能更高、功耗更低的核心。

4、总线速度:也就是多级缓存,缓解内存带来的瓶颈,所以出现了二级缓存,目前有2级缓存、3级缓存。缓存量越大越好。

5、超线程:大家经常听说双核心四线程就是超线程技术,该技术让一个核心可以分成两个小的核心进行并行运算来提高效率。核心线程越多堆积的性能也就相对高,但效率不一定是最优的。

6、浮数运算能力:这是考验CPU运算能力的一个指标,标志着谁运算能力更快更强大,目前的CPU大都是64位的,也就是2的64次方,老一些的CPU是32位的。

正常的商务本CPU浮点运算能力会低一点,如i7 8550u的浮点运算能力为124GFLOPS,而桌面bandei7 8700则可以跑到385GFLOPS。

扩展资料:

CPU基本结构

CPU包括运算逻辑部件、寄存器部件和控制部件等。

1、运算逻辑部件

运算逻辑部件,可以执行定点或浮点的算术运算操作、移位操作以及逻辑操作,也可执行地址的运算和转换。

2、寄存器部件

寄存器部件,包括通用寄存器、专用寄存器和控制寄存器。通用寄存器又可分定点数和浮点数两类,它们用来保存指令中的寄存器操作数和操作结果。通用寄存器是中央处理器的重要组成部分,大多数指令都要访问到通用寄存器。

通用寄存器的宽度决定计算机内部的数据通路宽度,其端口数目往往可影响内部操作的并行性。专用寄存器是为了执行一些特殊操作所需用的寄存器。

控制寄存器通常用来指示机器执行的状态,或者保持某些指针,有处理状态寄存器、地址转换目录的基地址寄存器、特权状态寄存器、条件码寄存器、处理异常事故寄存器以及检错寄存器等。

有的时候,中央处理器中还有一些缓存,用来暂时存放一些数据指令,缓存越大,说明CPU的运算速度越快,目前市场上的中高端中央处理器都有2M左右的二级缓存,高端中央处理器有4M左右的二级缓存。

-CPU性能指标

-CPU

cpu=center processing units

npu=neural-network processing units

npu不是测试的项目,是网络处理器,可以把这个认为是一个组件(或者子系统),有的时候也可以称呼为 [2] NPU协处理器。嵌入式神经网络处理器(NPU)采用“数据驱动并行计算”的架构,特别擅长处理视频、图像类的海量多媒体数据。

推进过程

编辑 播报

2016年6 月 20 日,中星微数字多媒体芯片技术 国家重点实验室在北京宣布,已研发成功了中国首款嵌入式神经网络处理器(NPU)芯片,成为全球首颗具备深度学习人工智能的嵌入式视频采集压缩编码系统级芯片,并取名“星光智能一号”。这款基于深度学习的芯片运用在人脸识别上,最高能达到98%的准确率,超过人眼的识别率。该芯片于今年3月6日实现量产,目前出货量为十几万件。

该实验室执行主任、中星微首席技术官张韵东在接受采访时表示,装备了神经网络处理器的芯片应用在监控摄像头上,摄影头由“眼睛”升级为“带有大脑的眼睛”,这是全球首次。“数字多媒体芯片技术”国家重点实验室成立于2010年,依托于北京中星微电子有限公司,由科技部批准建立。据资料显示,中星微电子有限公司于1999年由原国家信息产业部直接投资创立,是专攻芯片技术的公司中的“国家队”,其研发的“星光系列芯片”曾打破国际市场上无“中国芯”的局面。人工智能的落地“星光智能一号”是一款嵌入式NPU。神经网络处理器NPU(Neural Processing Unit)还未被熟知,却是芯片领域热门的技术。它与冯诺依曼架构中的CPU处理器相对,采用的是“数据驱动并行计算”这种颠覆性的新型架构。如果将冯诺依曼架构处理数据的方式类比成单车道,那么“数据驱动并行计算”是128条多车道并行,可以同时处理128个数据,利于处理视频、图像类的海量多媒体数据。

在业内,单位功耗的计算性能,也就是性能功耗比,被用来衡量处理器架构的优劣。据该实验室执行主任、中星微首席技术官张韵东介绍,“星光智能一号”的性能功耗比在传统的冯诺依曼架构上“至少提高了两三个数量级”,也就是几百倍。

高功耗是很多顶尖人工智能技术被诟病的。IBM20世纪的“深蓝”和谷歌2016的AlphaGo因其需要由巨大的数据计算支撑,前者使用超级计算机,后者使用服务器集群,无法脱离恒定温度和湿度的机房。AlphaGo下一盘棋光电费就需要3000美元。张韵东将它们称之为“一场科学实验”,离技术落地、投入应用还有较远的距离。

这凸显了嵌入式NPU的小型化、低功耗和低成本优势,加快人工智能技术落地应用。例如无人机对摄像头的重量和功耗有很高的要求,否则会影响起飞和续航能力。而“星光智能一号”只有普通邮票大小,重量仅几十克,它的诞生让诸多监控摄像头等小型设备有了人工智能化的可能,迈出了人工智能从神秘的机房,跨向生活应用的一步。

中央处理器(central processing unit,简称CPU)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。CPU自产生以来,在逻辑结构、运行效率以及功能外延上取得了巨大发展。

中央处理器(Central Processing Unit,简写为CPU)的结构,CPU是决定电脑性能的核心部件。CPU即中央处理单元,是英文Central Processing Unit的缩写,是整个系统的核心,也是整个系统最高的执行单位。它负责整个系统指令的执行,数学与逻辑的运算,数据的存储与传送,以及对内对外输入与输出的控制。 在向大家介绍CPU详细的情形之前,务必要让大家弄清楚到底CPU是什么?它到底有那些重要的性能指标呢? CPU的英文全称是Central Processing Unit,我们翻译成中文也就是中央处理器。CPU(微型机系统)从雏形出现到发壮大的今天(下文会有交代),由于制造技术的越来越现今,在其中所集成的电子元件也越来越多,上万个,甚至是上百万个微型的晶体管构成了CPU的内部结构。那么这上百万个晶体管是如何工作的呢?看上去似乎很深奥,其实只要归纳起来稍加分析就会一目了然的,CPU的内部结构可分为控制单元,逻辑单元和存储单元三大部分。而CPU的工作原理就象一个工厂对产品的加工过程:进入工厂的原料(指令),经过物资分配部门(控制单元)的调度分配,被送往生产线(逻辑运算单元),生产出成品(处理后的数据)后,再存储在仓库(存储器)中,最后等着拿到市场上去卖(交由应用程序使用)。 CPU作为是整个微机系统的核心,它往往是各种档次微机的代名词,如往日的286、386、486,到今日的奔腾、奔腾二、K6等等,CPU的性能大致上也就反映出了它所配置的那部微机的性能,因此它的性能指标十分重要。在这里我们向大家简单介绍一些CPU主要的性能指标: 第一、主频,倍频,外频。经常听别人说:“这个CPU的频率是多少多少。。。。”其实这个泛指的频率是指CPU的主频,主频也就是CPU的时钟频率,英文全称:CPU Clock Speed,简单地说也就是CPU运算时的工作频率。一般说来,主频越高,一个时钟周期里面完成的指令数也越多,当然CPU的速度也就越快了。不过由于各种各样的CPU它们的内部结构也不尽相同,所以并非所有的时钟频率相同的CPU的性能都一样。至于外频就是系统总线的工作频率;而倍频则是指CPU外频与主频相差的倍数。三者是有十分密切的关系的:主频=外频x倍频。 第二:内存总线速度,英文全称是Memory-Bus Speed。CPU处理的数据是从哪里来的呢?学过一点计算机基本原理的朋友们都会清楚,是从主存储器那里来的,而主存储器指的就是我们平常所说的内存了。一般我们放在外存(磁盘或者各种存储介质)上面的资料都要通过内存,再进入CPU进行处理的。所以与内存之间的通道枣内存总线的速度对整个系统性能就显得很重要了,由于内存和CPU之间的运行速度或多或少会有差异,因此便出现了二级缓存,来协调两者之间的差异,而内存总线速度就是指CPU与二级(L2)高速缓存和内存之间的通信速度。 第三、扩展总线速度,英文全称是Expansion-Bus Speed。扩展总线指的就是指安装在微机系统上的局部总线如VESA或PCI总线,我们打开电脑的时候会看见一些插槽般的东西,这些就是扩展槽,而扩展总线就是CPU联系这些外部设备的桥梁。 第四:工作电压,英文全称是:Supply Voltage。任何电器在工作的时候都需要电,自然也会有额定的电压,CPU当然也不例外了,工作电压指的也就是CPU正常工作所需的电压。早期CPU(286枣486时代)的工作电压一般为5V,那是因为当时的制造工艺相对落后,以致于CPU的发热量太大,弄得寿命减短。随着CPU的制造工艺与主频的提高,近年来各种CPU的工作电压有逐步下降的趋势,以解决发热过高的问题。 第五:地址总线宽度。地址总线宽度决定了CPU可以访问的物理地址空间,简单地说就是CPU到底能够使用多大容量的内存。16位的微机我们就不用说了,但是对于386以上的微机系统,地址线的宽度为32位,最多可以直接访问4096 MB(4GB)的物理空间。而今天能够用上1GB内存的人还没有多少个呢(服务器除外)。 第六:数据总线宽度。数据总线负责整个系统的数据流量的大小,而数据总线宽度则决定了CPU与二级高速缓存、内存以及输入/输出设备之间一次数据传输的信息量。 第七:协处理器。在486以前的CPU里面,是没有内置协处理器的。由于协处理器主要的功能就是负责浮点运算,因此386、286、8088等等微机CPU的浮点运算性能都相当落后,相信接触过386的朋友都知道主板上可以另外加一个外置协处理器,其目的就是为了增强浮点运算的功能。自从486以后,CPU一般都内置了协处理器,协处理器的功能也不再局限于增强浮点运算,含有内置协处理器的CPU,可以加快特定类型的数值计算,某些需要进行复杂计算的软件系统,如高版本的AUTO CAD就需要协处理器支持。 第八:超标量。超标量是指在一个时钟周期内CPU可以执行一条以上的指令。这在486或者以前的CPU上是很难想象的,只有Pentium级以上CPU才具有这种超标量结构;486以下的CPU属于低标量结构,即在这类CPU内执行一条指令至少需要一个或一个以上的时钟周期。 第九:L1高速缓存,也就是我们经常说的一级高速缓存。在CPU里面内置了高速缓存可以提高CPU的运行效率,这也正是486DLC比386DX-40快的原因。内置的L1高速缓存的容量和结构对CPU的性能影响较大,容量越大,性能也相对会提高不少,所以这也正是一些公司力争加大L1级高速缓冲存储器容量的原因。不过高速缓冲存储器均由静态RAM组成,结构较复杂,在CPU管芯面积不能太大的情况下,L1级高速缓存的容量不可能做得太大。 第十:采用回写(Write Back)结构的高速缓存。它对读和写操作均有效,速度较快。而采用写通(Write-through)结构的高速缓存,仅对读操作有效 第十一:动态处理。动态处理是应用在高能奔腾处理器中的新技术,创造性地把三项专为提高处理器对数据的操作效率而设计的技术融合在一起。这三项技术是多路分流预测、数据流量分析和猜测执行。动态处理并不是简单执行一串指令,而是通过操作数据来提高处理器的工作效率。 动态处理包括了枣1、多路分流预测:通过几个分支对程序流向进行预测,采用多路分流预测算法后,处理器便可参与指令流向的跳转。它预测下一条指令在内存中位置的精确度可以达到惊人的90%以上。这是因为处理器在取指令时,还会在程序中寻找未来要执行的指令。这个技术可加速向处理器传送任务。2、数据流量分析:抛开原程序的顺序,分析并重排指令,优化执行顺序:处理器读取经过解码的软件指令,判断该指令能否处理或是否需与其它指令一道处理。然后,处理器再决定如何优化执行顺序以便高效地处理和执行指令。3、猜测执行:通过提前判读并执行有可能需要的程序指令的方式提高执行速度:当处理器执行指令时(每次五条),采用的是“猜测执行”的方法。这样可使奔腾II处理器超级处理能力得到充分的发挥,从而提升软件性能。被处理的软件指令是建立在猜测分支基础之上,因此结果也就作为“预测结果”保留起来。一旦其最终状态能被确定,指令便可返回到其正常顺序并保持永久的机器状态。 经过了上面的描述,相信大家对CPU已经有一个简单的概念和少许了解了,你一定想知道,一块CPU是怎样制造出来的呢?

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 浅谈多核心CPU和SoC芯片及其工作原理

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情