电脑芯片功能,电脑系统芯片缺点

问题一:计算机系统和操作系统的区别与联系是什么 计算机系统由计算机硬件和软件两部分组成 这个系统是抽象的 操作系统是装在电脑里的 比如winxp Linux...... 很实际的东西 联系呢应该是计算机系统包括操作系统 你可以在百度百科分别搜一下这两个 那样更详细 我就知道这么多 百度百科是个很好的平台 多去里面看看 有帮助的

问题二:电脑操作系统的多少位是什么意思? 我们的CPU从原来的8位,16位,到现在的32位和64位。

cpu处理计算的时候“数据”和“指令”是不同对待的。

8位的CPU,一次只能处理一个8位的“数据”或者一个8位的指令。比如'00001101'.

又比如:“+1”这个运算,你要先指示CPU做“+”,完成后再输入“1”数据给CPU。

8位的CPU优点是设计简单,处理速度比较快。

缺点就是:软件设计复杂,繁琐。不利于计算机的发展。

后来推出了16位的CPU,我们就可以一次处理两个字节(16位)的数据了,比如“加1”这个命令。“加”是一个指令,占用8个位,余下的8位我们可以存放数据“1”了。

32位的CPU就更加方便了,我们就可以一次处理一个a=a+b这样的命令了。

优点:简化了软件设计的复杂度

缺点:硬件设计更加复杂,计算速度下降。

一般来讲32位的CPU对于我们来讲是最理性的CPU,对于软件开发来讲足够了。

但是2的32次方 = 4294967296bit = 4G左右

很显然32位CPU只有4G左右的内存寻址空间,对于一些服务器来讲4G的内存的远远不够的了。我们需要更加大的内存寻址空间的话就需要对CPU进升级。64位CPU就这样诞生了。64位CPU的内存寻址空间是多少你算算看!呵呵。

2的64次方(理论上)。

但是现在的AMD和Inter的64位CPU并不是真正意义上的64CPU,只是进行了部分64位的改进,比如64位的内存寻址等。

要是真的全部都是64位的了,那么现在市场上的软件将全部被淘汰不能使用了~呵呵,想像一下会是什么样子。

64位的操作系统针对64位CPU设计的,增加了一些64位的指令,但还是和32兼容的。对于我们普通用户来讲64位系统意义不大。

问题三:电脑系统32位,和64位啥区别啊 64位系统运行起来比32位的系统,理论上快2倍。2. 32位系统最多支持4G内存实际为3.25G。3. 64位系统支持4G 8G 16G 32G 64G 128G 256G内存,理论上可以无限支持,只要你主板上有 足够的内存条插槽就OK。4. 再有就是涉及到软件兼容性的问题,32位的操作系统,民用化软件基本全部兼容,而64位的要 差些,但就目前Win7的32位和64位操作系统兼容性基本一样了。而新出来的Win8系统,无论是 32位还是64位操作系统,有待完善。综上:Win7系统,无论是32位还是64位都是非常成熟的系统,是目前的主流系统。楼主可大胆的用。唯一所要注意的就是,中档和中档以上的电脑装64位的系统,中档以下的就装个32位的系统吧,

了解更多电脑知识,可以到装机员网站看看

问题四:计算机系统和计算机网络系统的区别 计算机系统可以有两种解释,第1种就是我们平时所使用的计算机,就可以算做一个计算机系统,第2种就是由不同功能的处理系统所构建起来计算机系统,比如一个大型的服务器,是由不同功能的计算机(其实不能说是计算机,比我们用的要专业的多)组建起来的,这样就为一个计算机系统。。至于计算机网络,就是把单个的计算机系统通过一种称作网际网络的技术连接在一起,这种网络技术有很多种,比如我们平时使用的Intelnet网络、手机用的WEP网络、还有一些专用的网络,如教育网、公安内部网等等。。至于操作系统就是帮助我们使用这些计算机系统的一种工具,DOS系统、Windos系统等等,当然还有其他的一些系统,现在一些智能手机的专用系统、路由器中的系统等等,这些都是操作系统。。天津众 维原画提供

问题五:服务器系统是和普通的电脑系统有什么区别如题 谢谢了 ,因为任何服务器操作系统可以安装在个人电脑上,服务器操作系统也可以安装个人版,专业版,家庭版等操作系统,在这里主要把一些系统的版本进行区别.. Windows 2000 Professional(windows2000专业版) Windows 2000 Professional其实是Windows NT Workstation( Windows NT工作站)的最新版本,是专为各种桌面计算机和便携机开发的新一代操作系统。它继承了Window s NT的先进技术,提供了高层次的安全性、稳定性和系统性能。同时,它帮助用户更加容易地使用计算机、安装和配置系统、脱机工作和使用Internet等。对于电脑和网络系统的管理员而言,Windows 2000 Profess ional是一套更具有可管理性的桌面系统,无论是部署、管理还是为它提供技术支持都更加容易……这意味着更低的总体拥有成本。 Windows 2000 Server (Windows 2000服务器版) Windows 2000 Server是在Windows NT Server 4.0(Windows NT服务器4.0版)的基础上开发出来的,按照人们一贯的思维,它命名为Windows NT Server 5.0 更合适。Windows 2000 Server是为服务器开发的多用途操作系统,可为部门工作小组或中小型公司用户提供文件打印、软件应用、Web功能和通信等各种服务。它是一个性能更好、工作更加稳定、更容易管理的平台。Wind ows 2000 Server最重要的改进是在活动目录目录服务技术的基础上,建立了一套全面的、分布式的底层服务。活动目录是集成在系统中的,采用了Internet的标准技术,是一套具有扩展性的多用途目录服务技术。它能有效地简化网络用户及资源的管理,并使用户更容易地找到企业网为他们提供的资源。Windows 2000 Ser ver支持2路对称多处理器(SMP)系统,是中小型企业应用程序开发、Web服务器、工作组和分支部门的理想操作系统。 Windows 2000 Advanced Server (Windows 2000高级服务器版) 该版本最初的名称是Windows NT Server 5.0 Enterprise Edition(W indows NT服务器企业版)。Windows 2000 Advanced Server除具有Windows 2000 Server的所有功能和特性外,还提供了比之更强的特性和功能:更强的SMP扩展能力:Windows 2000 Advanced Server提供了更强的对称多处理器支持,支持数达到4路。更强大的群集功能。更高的稳定性:可为核心业务提供更高的稳定性,在多种一般错误发生后一分钟内自动重启应用软件。例如,把两台基于Intel 结构的服务器组成一个群集,可以获得很高的可用性和可管理性。网络负载平衡:为网络服务和应用程序提供高可用性和扩展能力,例如TCP/IP和Web服务。组件负载平衡:为+组件提供高可用性和扩展能力。高性能排序:Windo ws 2000 Advanced Server优化了大型数据集的排序功能。这些功能和特性使Windows200 0 Advanced Server比Windows 2000 Server具有更高的扩展性、互操作性和可管理性,可应用于拥有多种操作系统和提供Internet服务的部门和应用程序服务器。 Windows 2......>>

问题六:电脑中“\”与“/”这个的区别是什么?意思是什么? 计算机操作系统不同

比如Windows本地路径用\

例如C:\windows 叮;system32

网络一般用/

file:/D:/

xxx/

一、相对路径?相对路径就是指由这个文件所在的路径引起的跟其它文件(或文件夹)的路径关系。使用相对路径可以为我们带来非常多的便利。下面举实例详解:

例如在本地硬盘有如下两文件,它们要互做超链接

G:\site\index

G:\site\web\article\01

index要想链接到01这个文件,正确的链接应该是:链接文字,这是标准的相对路径。

反过来,01要想链接到index这个文件,在01文件里面应该写上这句:返回首页。这里的../表示向上一级。

至此,你已经了解相对路径的概念了,就是这样简单明了。如果你还是没有看明白,以前学过DOS吗?它的“CD文件夹名”和“CD..”命令用过吗?这是同理的。

注意:相对路的文件夹符号是斜杠:/

链接文字这样的链接,在href后面的第一个斜杠表示根目录,通常我们要特别慎用这种方式。 二、什么是绝对路径?

在中(广域网),以开头的链接都是绝对路径。

三、什么是物理路径?

物理路径指的是某一台计算机本地的路径,以盘符开头,例如C:\、D:\temp等等。ASP的数据库连接中,只能连接物理路径,而不能连接相对路径,所以需要用server.mappath对象把相对路径转化成物理路径。

\是文件的路径,如c:\windows\system\……

/是用在dos命令中加参数,DIR――显示磁盘目录命令

1.功能:显示磁盘目录的内容。

2.类型:内部命令

3.格式:DIR [盘符][路径][/P][/W]

使用说明:/P的使用;当欲查看的目录太多,无法在一屏显示完屏幕会一直往上卷,不容易看清,加上/P参数后,屏幕上会分面一次显示23行的文件信息,然后暂停,并提示;Press

any key to continue

/W的使用:加上/W只显示文件名,至于文件大小及建立的日期和时间则都省略。加上参数后,每行可以显示五个文件名。

问题七:电脑装系统都有几种方法 分别是什么 lz,电脑装系统分不同的电脑而不同。一般windows电脑主要有三种方法:光盘安装,U盘安装,硬盘安装,第一种适用于电脑没有系统安装(当然,有系统也可以)。第二种适用于没有系统,或者系统无法正常启动,但是希望把电脑桌面或者硬盘里面的东西拷出来,或者希望重新分区的情况(当然,有系统也可以)。硬盘安装要求电脑可以正常开机。楼下说的备份和还原其实不能算是系统安装,属于备份还原的。苹果电脑的话,可以光盘安装,U盘安装,app升级和在线安装。光盘安装要求电脑有光驱,但是其实苹果很多电脑米有光驱的。U盘安装很方便。app安装其实是属于系统升级,不属于安装。在线安装是苹果公司新出的,不过仅适用于苹果电脑,只需连接无线网即可,不管电脑有没有系统,但是安装的是最新的系统,不管正式版还是bate版,不适用于想要使用经典稳定版本的用户。其实综合考虑,U盘装系统是最好的。lz可以淘宝搜索小一电子可以,本人出 售各种系统U盘,保证正品,全国联保,保证好用,一次购买,终身免费远程维护。纯手工打。

问题八:电脑系统问题,32位和64位到底是什么个意思?有什么区别? 这里的64位技术是相对于32位而言的,这个位数指的是CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度为64位,64位指令集就是运行64位数据的指令,也就是说处理器一次可以运行64bit数据。64bit处理器并非现在才有的,在高端的RISC(Reduced Instruction Set puting,精简指令集计算机)很早就有64bit处理器了,比如SUN公司的UltraSparc Ⅲ、IBM公司的POWER5、HP公司的Alpha等。

64bit计算主要有两大优点:可以进行更大范围的整数运算;可以支持更大的内存。不能因为数字上的变化,而简单的认为64bit处理器的性能是32bit处理器性能的两倍。实际上在32bit应用下,32bit处理器的性能甚至会更强,即使是64bit处理器,目前情况下也是在32bit应用下性能更强。所以要认清64bit处理器的优势,但不可迷信64bit。

目前主流CPU使用的64位技术主要有AMD公司的AMD64位技术、Intel公司的EM64T技术、和Intel公司的IA-64技术。其中IA-64是Intel独立开发,不兼容现在的传统的32位计算机,仅用于Itanium(安腾)以及后续产品Itanium 2,一般用户不会涉及到,因此这里仅对AMD64位技术和Intel的EM64T技术做一下简单介绍。

AMD64位技术

AMD64的位技术是在原始32位X86指令集的基础上加入了X86-64扩展64位X86指令集,使这款芯片在硬件上兼容原来的32位X86软件,并同时支持X86-64的扩展64位计算,使得这款芯片成为真正的64位X86芯片。这是一个真正的64位的标准,X86-64具有64位的寻址能力。

X86-64新增的几组CPU寄存器将提供更快的执行效率。寄存器是CPU内部用来创建和储存CPU运算结果和其它运算结果的地方。标准的32-bit x86架构包括8个通用寄存器(GPR),AMD在X86-64中又增加了8组(R8-R9),将寄存器的数目提高到了16组。X86-64寄存器默认位64-bit。还增加了8组128-bit XMM寄存器(也叫SSE寄存器,XMM8-XMM15),将能给单指令多数据流技术(SIMD)运算提供更多的空间,这些128位的寄存器将提供在矢量和标量计算模式下进行128位双精度处理,为3D建模、矢量分析和虚拟现实的实现提供了硬件基础。通过提供了更多的寄存器,按照X86-64标准生产的CPU可以更有效的处理数据,可以在一个时钟周期中传输更多的信息。

EM64T技术

Intel官方是给EM64T这样定义的:EM64T全称Extended Memory 64 Technology,即扩展64bit内存技术。EM64T是Intel IA-32架构的扩展,即IA-32e(Intel Architectur-32 extension)。IA-32处理器通过附加EM64T技术,便可在兼容IA-32软件的情况下,允许软件利用更多的内存地址空间,并且允许软件进行32 bit线性地址写入。EM64T特别强调的是对32 bit和64 bit的兼容性。Intel为新核心增加了8个64 bit GPRs(R8-R15),并且把原有GRPs全部扩展为64 bit,如前文所述这样可以提高整数运算能力。增加8个128bit SSE寄存器(XMM8-XMM15),是为了增强多媒体性能,包括对SSE、SSE2和SSE3的支持。

......>>

问题九:电脑中的每个磁盘有什么区别? 其实锭个没有区别,不过是建议大家有条理有组织的存放文件,以便以后查找的时候方便而已.一般WINDOWS的系统会把C盘作为系统盘,就是装有系统程序的磁盘,但是如果说电脑里有多个系统,其他盘也可以做为系统盘的,默认是一个系统的时候是放在C盘.如果你电脑里只有一块硬盘,你看到的很多盘其实只是这个硬盘里的一些分区,把一个硬盘分成多个区,来存放不同的文件,有条理有秩序,方便用户而已,没有太大差别

问题十:买电脑带系统好还是自己装系统好?有什么区别?系统是什么?干什么的?自己装怎么装? 当然是用自带的哟,这个一般是免费的,如果自己装的话,首先的有系统,一般是收费的哟,并且安装的时候你的自己懂,如果找其他人安装的还的花钱。

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

转自 嵌牛导读 本文讲解了多核心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推出的主频为3.4GHz的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的成果,也直接影响多核的性能和实现周期。同时,核心所用的指令系统对系统的实现也是很重要的,多核心采用相同的指令系统还是不同的指令系统,能否运行操作系统等,也是设计者要研究的重要问题。

3.Cache 设计技术

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芯片技术可以看作是延续摩尔定律生命的两大关键技术。