您好、欢迎来到现金彩票网!
当前位置:手机棋牌游戏下载 > 微指令 >

性能直追Intel:中国X86 CPU技术源自何方?

发布时间:2019-07-10 03:46 来源:未知 编辑:admin

  在第18届中国国际工业博览会上,上海兆芯公司的ZX-C处理器获得了金奖。在2017年3月,更是接连荣获“2017年度大中华IC设计成就奖”、“第十一届(2016年度)中国半导体创新产品和技术奖”。

  在国家十二五科技创新成就展中兆芯的宣传材料显示,“兆芯国产X86通用处理器的成功自主研发和量产,令国产处理器在性能方面完成了一次跨越式的提升,从十二五初期的不足国际整体水准的10%提升到了目前的80%”。

  众所周知,Intel对X86的授权有着极为严格的限制,那么上海兆芯的X86芯片技术到底从何而来?ZX-C目前的短板在哪里?在性能上和Intel相差多远呢?

  兆芯C4600 cpuinfo的信息显示:设计厂商为美国Centaur,微结构是VIA的以赛亚

  在Linux系统中命令cat /proc/cpuinfo可以读出芯片的一些信息和特性。其命令和Windows系统中cpu-z软件获得的信息类似。芯片cpuinfo的信息是通过CPUID指令读出来的。例如eax=1时,读出的是处理器的信息以及特征位(CPUID指令的使用,见wiki/CPUID)。

  U3500芯片属于VIA Nano系列。其中的微架构为Isaiah(以赛亚)。支持的指令集到SSE4.1为止,并且支持x86-64指令集。从C4600芯片cpuinfo的信息可以看出,C4600的设计厂商(vendor_id)还是VIA的Centaur公司,而没有改为ZX的标志。

  根据维基的资料显示:Centaur(半马人)科技公司,创立于1995年,创建者为Glenn Henry, Terry Parks, Darius Gaskins和Al Sato,其获得的投资来自于IDT公司。其公司的目标是开发兼容的x86处理器,目标定位为开发比Intel公司的x86芯片价格更低,功耗更小的芯片。

  早期的产品称为WinChip,1999年9月,Centaur被IDT公司出售给VIA公司,其后续的产品为VIA C3和VIA C7,以及VIA Nano。Centaur公司的芯片主要面向嵌入式市场,包括移动市场,也就是面积更小、价格更便宜,功耗更低的x86芯片市场。Centaur的设计理念是对于面向特定市场需求“够用就好”。

  VIA Nano Isaiah(以赛亚),是Centaur第一款超标量、乱序执行的CPU,第一款64位的CPU,Nano芯片这时更为强调性能,而不再是追随性能功耗比的等式,但是其维持和C7相同的功耗(TDP)。

  根据Centaur(半马人)公司的网站的介绍,Centaur(半马人)科技公司,位于德克萨斯-奥斯丁。主要设计高性能、低功耗的x86兼容的微处理器,号称具有最快的设计流程,设计周期是竞争对手厂商的三分之一。

  Glenn Henry于1967年加入IBM,在IBM干了21年,担任首席架构师,是RISC工作站、AIX操作系统和AS/400等创新产品的主要研发管理者,于1985年获得IBM fellow的称号,1988年离开IBM加入DELL公司,为DELL公司负责研发的副总和CTO。

  1994年离开DELL公司,担任MIPS公司的咨询顾问,试图把x86和MIPS架构结合在一起,1995年Henry获得了来自IDT公司的投资,创建了Centaur公司,设计低功耗、低成本的x86处理器。

  正如Intel在研发出酷睿2后一举翻身,AMD在开发出Zen之后终于做出能与Intel相比较的产品,一款CPU最关键的就在于其微结构,那么QuadCore C4650芯片的微结构究竟怎么样呢?

  以赛亚采用类似于Core架构的设计,7个部件,2个定点I1和I2,2个浮点MA和MB,1个取数LD,1个存数ST和1个SA地址计算。也就是2个定点、2个浮点、2个访存。属于中规中矩的设计。

  从文章中介绍和测试数据来看,该处理器结构在2008年而言是非常棒的微架构,兼顾了低功耗和适度性能。从性能上可以打赢当时的按序发射的Intel Atom,但是由于技术团队人数有限,在功耗控制实现上不是那么完美,所以导致其市场定位高不成低不就。

  在高性能上没法和Intel的Core和AMD的K10抗衡,在低功耗上又不能做到无风扇设计,没法和Atom以及近年来崛起的ARM相比。导致Nano的芯片主要用于上网本等市场,但是由于出货量较少,每片的成本相对较高,随着上网本市场的消亡,Nano芯片基本也退出了主流市场。

  在2016年,兆芯宣布开始将量产100万套ZX-C四核X86处理器。这里先介绍下C4600和ZX-C的关系。根据兆芯官网资料,ZX-C可分为C4200/4210、C4400/4410、C4600/C4610三个类别,之间的差别在于主频,C4600是ZX-C系列处理器的2.0G主频版本。

  而且之前已经介绍了,从C4600芯片cpuinfo的信息可以看出,C4600的设计厂商(vendor_id)还是VIA的Centaur公司,而没有改为ZX的标志。

  兆芯的C4600与VIA公司的QuadCore C4650有非常紧密的联系。这种联系存在两种可能:

  第一种可能是,Centaur公司已经由威盛公司完全出售给了兆芯公司了,所以直接使用Centaur公司的标志,Centaur公司的技术成果也就顺理成章的成为国家“十二五”核高基重大科技专项创新成果。

  第二种可能是,通过VIA的关系,兆芯直接把QuadCore C4650的设计或版图买过来,或者直接拿过来,重新在台积电流片,然后改头换面变成了国家“十二五”核高基重大科技专项创新成果。

  根据资料显示:兆芯ZX-A处理器,如C4350AL的微结构是“以赛亚”,而ZX-C系列处理器,比如C4600的微结构是“以赛亚2”。那么,以赛亚和以赛亚2到底有多少差异呢?

  Centaur公司设计的以赛亚在当时是立足差异化竞争的产物,以赛亚也是一个轻量级的架子,虽然在2009年的时候这个设计还是挺不错的。但随着技术的进步,以赛亚在今天就有点不够看了,面对ARM Cortex A57/A72/A73就难以招架了。下面简单介绍一下兆芯C4600和VIA以赛亚的短板:

  正是因为历史原因以及Intel对外的X86授权因素,当时的VIA公司没有拿到Intel最新指令集系统的授权,所以2009年的Nano处理器最高支持到SSE4.1。相比之下,VIA QuadCore C4650和兆芯C4600处理器支持后续的SSE4.2和最新的AVX和AVX2等指令集系统。

  对于VIA QuadCore C4650和兆芯C4600支持最新的AVX和AVX2等指令集系统,可能的原因是VIA已经买到了Intel公司最新指令集系统的授权。不过VIA如何将指令集授权转让给兆芯,这个问题无论是Intel,还是VIA、兆芯都没有任何公开声明。

  诚然,这个不是本文关注的重点。本文关注的是缘何增加了AVX和AVX2等指令集系统C4600的性能反而下降了。

  必须说明的是,采用向量指令提高性能的前提是处理器的访存通路能供应上足够宽的数据,如Haswell为了支持256位的AVX/AVX,采用了3个访存的端口,同时支持2个256位的load操作和1个256位的store操作。

  与Intel和AMD的CPU相反,C4600处理器兼容了Intel最新的256位向量指令AVX/AVX2等(不支持乘加FMA指令)。在编译时打开了AVX2, AVX, bmi等最新指令集编译选项,但编译出来的程序实测性能反而下降。

  为什么采用新型的指令集系统,SPEC CPU2006程序性能反而有所下降呢?很可能是兆芯C4600处理器保留了Centaur公司的原始设计,没有对最新的指令系统在微结构和硬件上进行改动,也就是在微结构上除了指令译码部分,在数据通路和访存通路上没有变化。而这也作证了之前提到的:以赛亚2和以赛亚其实是同一个东西,或者说修改的地方微乎其微。

  首先来看处理器在指令译码部分怎么支持最新的指令集系统,在当前的CISC指令集系统的实现都是将外部CISC指令翻译为内部的类RISC,即uops,通常一条CISC指令可以在内部被翻译为1-3条内部的uops指令。

  可以看出“以赛亚”架构仍然在沿用X86处理器早期的部分复杂X86指令微码实现的方式,如果要支持新的如AVX的指令,就可以通过更新微码的方式来实现,再通过微码指令转换为内部的微操作指令实现。

  第二,256位寄存器的实现,既然要支持AVX指令,需要实现256位的体系结构可见的寄存器和256位的重命名物理寄存器,我们猜测其内部实现为仅实现了体系结构可见的寄存器,而没有实现256位的重命名物理寄存器,这不会增加太多的开销。

  在数据通路和访存通路的实现上,在内部很可能是将256位的向量指令拆分为多条128位的类SSE指令实现的,这种方法在第一代AMD的推土机实现256位的AVX指令和第一代的K8实现128位的SSE指令也是这么做的,通过内部拆分在数据通路上支持新的指令集系统。

  但是这样做的结果是,新的指令系统对性能不但没有好处,反而会有性能的下降,因为数据通路和访存通路根本就没有实现更宽的设计,就好比本身很窄的马路,可以通过2个车道,这时候同时来4辆车,这4辆车就得排成两排,顺序通过。另外,更宽的向量操作导致其架构的访存和供数能力跟不上,这也造成了新指令集有时性能下降的原因。

  限制兆芯C4600芯片的一大瓶颈是Centaur公司延续了其前端总线 bus)的设计,而且没有将内存控制器集成到处理器上。

  前端总线(front-side bus,FSB)是早期Intel芯片的计算机通信的接口,和AMD公司的EV6类似,其连接CPU和北桥芯片,内存控制器通常集成在北桥中。PCI,AGP等各种设备以及内存都是通过北桥和CPU进行通讯。

  前端总线次。前端总线的速度是当时计算机系统一个重要的衡量指标,当前,前端总线MHz,每个周期能进行4次传输。由于设计的缺陷,前端总线的频率没法得到进一步提升。假设前端总线MHz,也就是通常厂家说的1333MHz,其峰值理论带宽为10.65GB/s,即8 bytes/transfer×333 MHz×4 transfers/cycle=10656MB/s。

  前端总线的设计,使得CPU需要等待来自内存中的数据,对于每个元素需要的大量复杂计算的应用,这样的应用访存不是那么的密集,前端总线能跟上CPU的速度。而对于图像、音频、视频、游戏、FPGA综合以及科学应用等应用,通常是对于大工作集的少部分数据进行操作,这样前端总线就成为一个主要的性能瓶颈。

  国际主流CPU都在十年前把内存控制器集成在CPU芯片中,而兆芯C4600继续把内存控制器集成在桥片上,访存带宽受限于前端总线。VIA 以赛亚系列处理器从2009年开始一直采用VIA V4 BUS的前端总线设计,而没有将内存控制器集成到芯片上,即使是2014年对Nano X2的改版也不愿意去动其结构和设计。

  只是从40nm工艺提高到28nm TSMC的工艺,同时把V4总线MHz,也就是其前端总线GB/s。所以其内存带宽不高原因也就可以解释。

  另外,多线程的情况下,多个CPU核以及I/O等会竞争前端总线,前端总线和内存控制器的预期机制截然不同,造成访存序的紊乱。所以在多个线程尤其是访存压力很大的情况下,其性能会急剧下降。这也是C4600多线程带宽反而不如单线程带宽的原因。

  对于C4600,1-2个核基本上就吃满了访存带宽,对于龙芯3A3000而言,访存带宽具备显著的优势,其能满足4-8个处理器核的需求。所以,在单线程性能差距不大的情形下,龙芯3A3000的SPEC CPU2006多线程rate的性能,明显超过了C4600的rate性能。

  虽然在一系列兆芯官方宣传和中文宣传资料上,兆芯一直宣传自主安全可控,在其官方网站上也标明自主可控。但与兆芯相关的英文材料却标明:Based on Centaur Technologie’s microarchitecture designs。

  在微结构源自Centaur公司,指令集授权也模糊不清的情况下,就宣布兆芯自主安全可控,未免有点超之过急——即便是走技术引进道路,也要在凭借自己的能力完成消化吸收再创新之后,才能称得上自主可控安全。

  比如在充分消化Centaur公司设计的以赛亚之后,凭借境内设计团队设计出可以匹敌Intel SNB或者AMD Zen的产品,这才真的称得上再创新。拿Centaur公司设计的以赛亚,改制程堆核心数提升总线频率做出一款CPU就宣传自主可控,无非是自欺欺人而已。

  至于拿Centaur公司早年的设计,改头换面就成为国家“十二五”核高基重大科技专项创新成果,并能够荣获“第18届中国国际工业博览会金奖”、“2017年度大中华IC设计成就奖”、“第十一届(2016年度)中国半导体创新产品和技术奖”,也难怪国外资深IC设计工程师会对中国的IC设计水平嗤之以鼻了。

http://tennisinspokane.com/weizhiling/364.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有