技术水准如何?俄罗斯自研处理器产品初窥

2020-08-11 14:25张平
微型计算机 2020年14期
关键词:英特尔计算能力端口

张平

俄罗斯在自研处理器方面有着悠久的历史,至少从2011年开始,俄罗斯就致力于研发一款全新的处理器,希望可以用于俄罗斯政府或者其相关单位的服务器和PC等设备,从而实现设备的全面自主可控。这款处理器的名称就叫Elbrus,名称来源可能是大高加索地区的一座山峰,其技术来源则没有详细的说明,但是据一些业内人士猜测,Elbrus的架构可能来自SPARC,因为设计Elbrus处理器的公司简写是MCST,全称是MoscowCenterofSPARCTechnologies,可以看出名称中和SPARC有一定渊源。SPARC全称是ScalableProcessorARChitecture,也就是可扩展处理器架构的简写。这是一种RISC架构,最早出现在SUN公司在1985年推出的处理器上。SPARC在随后的数十年发展中,秉承了开放和可授权的发展理念,包括德州仪器、富士通、ORACLE等厂商都是用SPARC的授权开发自己的产品。SPARC架构在2008年左右就已经彻底停止发展,但是其开源的架构和技术设计规范、设计思想等依旧在业内持续流傳。

言归正传,接下来本文正式介绍有关Elbrus处理器和相关产品的内容。需要说明的是,目前的相关资料主要来自2015年9月份“RussianSupercomputingDays”中发布的有关Elbrus处理器的相关内容,以及2020年发布的“Руководствопоэффективномупрограммированиюнаплатформе?Эльбрус?”也就是“Elbrus平台编程语言概述”,因此可能和目前Elbrus处理器的真实发展情况存在很大的偏差,毕竟5年前的架构介绍和今年的编程环境文件本身包含的信息都不够新、不够完善。

四代产品发展史:Elbrus家族和产品简介

Elbrus和相关产品家族的内容虽然出现得比较早,但是一直以来都比较神秘。根据2015年的资料,Elbrus家族的产品和技术目前包含微处理器,也就是被称作Elbrus的CPU和一些被称作MCST-RLine的辅助产品,以及控制芯片(南桥)、计算机或者计算机模块等。在软件支持方面,Elbrus拥有完整的操作系统,支持三路并行编译的编译器和软件开发包,以及二进制兼容执行技术和相关安全执行技术等。

2011年:90nm的Elbrus-2C+

2011年第二季度流片的Elbrus-2C+处理器在2012年正式上市。其相关规格包括采用TSMC90nm工艺制造,10层金属层,核心面积为17.2×16.8mm,运行频率为500MHz,设计功耗为25W。处理器内包含了2个Elbrus架构的核心和4个DSP多核心架构的核心。性能方面的指标是单精度浮点计算能力为28GFLOPS,双精度浮点计算能力为8GFLOPS,其中双精度计算能力全部来自2个CPU核心,单精度计算能力方面CPU核心贡献了16GFLOPS,DSP核心贡献了12GFLOPS。从产品命名可以看出,Elbrus处理器极有可能早在2011年之前就已经有至少2个版本的产品完成了研发,否则其命名不太可能以“2C+”这样的后缀出现。这样的后缀一般会被认为这款产品属于Elbrus家族第二代产品C型的加强版。因此,Elbrus的研发历史比目前披露出来的还要长许多。

除了处理器之外,和Elbrus-2C+搭配的产品还包括南桥芯片KPI-1,采用TSMC130nm工艺制造,9个金属层,运行频率为250MHz,功耗为5W,芯片面积为10.6×10.6mm,流片时间为2010年,实际上市时间在2011年第一季度。相关技术特性包括拥有14个连接界面,包括系统连接(可能是和CPU连接的总线),PCIe支持、PCI支持、网络支持(10/100/1000)、SATA2.0支持、USB2.0支持、RS232/485并口支持等。具体到每个功能分配了多少个接口,这里没有相关信息。

由于Elbrus-2C+的实际上市时间是2012年,因此我们可以用2012年市面上销售的AMD和英特尔处理器进行一些对比。2012年英特尔主流的处理器是32nm的SandyBridge和刚发布的22nm工艺IvyBridge,也就是第二代、第三代酷睿处理器,基础频率一般超过2.0GHz,市售主流产品核心数量一般是2~4个。相比之下,Elbrus-2C+的处理器采用的是90nm工艺,这大概是英特尔在2005年使用的工艺技术,Elbrus-2C+大概落后英特尔4代左右(90nm、65nm、45nm、32nm、22nm),频率上也难以提升。性能方面,SandyBridge架构的Corei7-2600的理论浮点计算能力大约是50GFLOPS左右,也远远超过有DSP加持的Elbrus-2C+。

2013年:Elbrus-4C

2013年,Elbrus-4C诞生了,并于2014年正式上市。这一次,Elbrus-4C中包含了4个核心,没有再加入DSP核心。Elbrus-4C采用了台积电65nm工艺,核心面积大幅度增加到了380平方毫米,运行频率提升至800MHz,功耗为40W。缓存方面,Elbrus-4C加入了8MB的L2缓存,每个核心分配2MB。内存方面采用了不多见的3通道DDR3内存,最大可以提供38.4GB/s的带宽。性能方面,Elbrus-4C的性能提升至理论单精度计算能力50GFLOPS,理论双精度计算能力25GFLOPS。值得注意的是,这是在频率不到1GHz的情况下取得的性能数据,这显示出新的处理器架构大幅度加强了浮点计算能力。

除了处理器之外,在设备方面,由于有了Elbrus-2C+和Elbrus-4C这两个平台,研发Elbrus处理器的MCST还开发出了一体机、紧凑小型机和全尺寸台式机、服务器以及可扩展刀片服务器等设备。其中Elbrus-4C被使用在一款台式设备中,除了处理器外,主板采用了传统的Micro-ATX设计,拥有一个PCIe1.0x8插槽以及2个PCI插槽,千兆网卡和3个SATA2.0接口。此外,无论是早期的Elbrus-2C+还是Elbrus-4C,都搭配了相关2D和3D加速卡,不过现在并不清楚这些2D和3D加速设备的相关参数,极有可能只能提供最基本的2D和3D加速能力。

除了个人电脑外,Elbrus-4C处理器还被使用在服务器产品中,被称作ServerElbrus-4.4。ServerElbrus-4.4的一个机架中布置了4颗Elbrus-4C处理器,总计16个核心,与之相配的是2个南桥。内存方面拥有12根DDR3-1600内存,总容量达96GB。性能方面,整个机架能够带来大约200GFLOPS的单精度计算能力。进一步扩展的话,ServerElbrus-4.4还可以实现一个大型机柜配置,整个设备最多可以扩展64个机架、256颗处理器和1024颗核心,内存容量可以扩展至6~12TB,硬盘容量可以扩展至32~64TB。这些处理器之间的互联同样由MCST设计的FPGA互联加速芯片完成。功耗方面,这类机柜的最大功耗为20kW,采用风冷散热,峰值性能最高可达13.8TFLOPS。

2015年:Elbrus-8C

2015年,Elbrus又诞生了全新的Elbrus-8C。新的处理器内部包含了8个核心,每个周期可以运行30个OPS,性能较之前的产品大幅提升。这一次,处理器采用了台积电28nm工艺制造,核心面积为321.4平方毫米,频率来到了1.3GHz的水平,功耗暂时还没有提及,但是应该不会太高。缓存方面的改进在于为每颗核心配备了512KBL2缓存,还加入了16MBL3共享缓存。由于核心数量、频率等大幅度提升,因此Elbrus-8C的理论单精度、双精度性能达到了250GFLOPS和125GFLOPS。

相比之下,2015年英特尔的典型处理器是Corei7-6700K,这款处理器采用4核心8线程设计,频率为4.0~4.2GHz,其Whetstone实测单精度性能大约是110GFLOPS,双精度性能大约在80GFLOPS左右。当然,理论数据和实测数据基本不具有可比性,仅供参考。

为了进一步提高性能,Elbrus平台配置的南桥芯片也得了更新。新的南桥芯片被称为KPI-2,采用台积电65nm工艺制造。KPI-2和CPU连接带宽提升到了16GB/s,拥有新的PCIe控制器,能够提供“8+8+4”的PCIe通道配置。此外还加入了3个千兆网络接口、8个SATA3.0接口和8个USB2.0接口,另外还有SPMC控制器和中断控制器等。这款南桥芯片在2015年第四季度流片,2016年第一季度正式上市。

2018年:Elbrus-8V

在2015年的产品介绍内容中,还提到了2018年新处理器的发展。2018年的新处理器核心数量依旧是8颗,但是核心架构发生了较大的变化,因此型号后缀的字母改成了V,处理器型号全称为Elbrus-8V。相比上代产品,新的Elbrus-8V每周期执行指令能力大幅提升了多达66%左右,现在每周期可以执行50条ops,核心频率也提升至1.5GHz。缓存配置上依旧维持了Elbrus-8C的方案,那就是为每颗核心配备512KBL2缓存,搭配16MBL3共享缓存。工艺方面,Elbrus-8V和Elbrus-8C采用了同样的台积电28nm工艺,但是,Elbrus-8V的核心面积大幅度提升至435平方毫米,相比前代产品差不多大了1/3。性能方面,Elbrus-8V的峰值单精度、双精度性能分别是512+GFLOPS和256+GFLOPS。2018年第二季度流片,2018年第四季度上市。

不过上述情况在2020年的“Elbrus平台编程语言概述”发生了变化。新的文件显示,最新的处理器型号采用了Elbrus-8CB的命名方式,工艺依旧是台积电的28nm,核心面积333平方毫米(显著小于Elbrus-8V),具有8颗1.5GHz的内核,内存方面使用DDR4-2400四通道设计,内存总带宽达68.3GB/s。缓存方面,整个处理器具有独立的L1和L2缓存。L1数据缓存64KB、L1指令缓存128KB,L2缓存512KB,L3缓存则是由所有核心共享16MB。性能方面,处理器单精度计算能力提升至576GFLOPS,远远超过之前的Elbrus-8C的性能。

目前,我们尚不清楚在Elbrus-8C和Elbrus-8V、Elbrus-8CB之间发生了什么故事。但是从上述参数可以看出,Elbrus-8V似乎被取消了,换成了Elbrus-8CB,后者在核心面积上没有大幅度增加的情况下也达到了Elbrus-8V预期的性能,这应该是现有条件下比较合理的解释了。

目前得到的有关Elbrus家族处理器的信息就是这样了。在性能提升方面,Elbrus家族的产品现在基本上是2年更新一代架构,其中2013年的架构相比2011年,性能提升了3倍左右,2015年是进步幅度最大的架构,相比2013年提升了大约4~5倍,2018年则在2013年的基础上提升了大约2倍。从最早期的单精度计算能力16GFLOPS到现在的512+GFLOPS,Elbrus用大约7年时间完成了性能的飞跃。

不过依旧需要值得注意的是,Elbrus和相关家族产品目前没有对外公布太多的信息,因此其理论性能可能和实际测试存在比较大的差异。另外由于架构差异,Elbrus处理器和英特尔、AMD这些我们熟悉的处理器之间的性能数据对比只能作为参考来看,在它们运行在统一环境下的测试开始之前,大部分性能和参数对比的意义都不算太大。

仅有的信息:Elbrus架构初探

Elbrus处理器在性能上的进步速度还是非常快的,但是在架构设计上,这款处理器显然并不是ARM、X86、MIPS等我们熟知的处理器架构中的任何一个。在本文开始的时候,我们曾提到它可能采用的是SPARC架构,更直接一些的话,Elbrus处理器采用的是类VLIW,也就是VeryLongInstructionWord,超长指令字架构。所谓VLIW,是指一种非常长的指令组合,这种组合会把很多指令连接在一起一次性处理,从而提高计算的速度。VLIW是指令级并行,因此非常依赖于编译器的能力。一般来说,在GPU這样拥有大量固定类型计算的应用场景中,VLIW是非常容易使用的,但是依旧需要编译器的配合。

Elbrus带来了一些自己处理器架构的相关信息。比如每核心、每周期最多25个标量操作,每核心每周期可以执行12个双精度浮点计算、支持多核心架构、支持高速缓存相关的非一致性内存访问(CacheCoherentNon-UniformMemoryAccess,ccNUMA)等技術。此外,它还支持二进制兼容性功能、安全程序执行等功能。

在兼容性方面,Elbrus通过基于透明的动态二进制编译技术,实现了对x86和x86-64指令集的支持,但是具体实现方式未知。不过一些文件显示Elbrus可以实现不同的指令动态编译级别,比如最简单的指令使用模板就能完成编译,速度最快。中等难度的指令需要基于Region进行编译,速度比较快。最高难度的需要使用到处理器的并行架构才能完成处理。此外Elbrus的编译模块还能够高效地执行多线程计算,并和操作系统实现对异步异常的处理和中断,将部分代码保留在编译库中用于重复执行,通过反馈控制调整性能,从而实现对性能有严重影响的代码重新编译等。

不仅如此,Elbrus得到了20多种操作系统的支持,包括WindowsXP、Windows7、Linux、QNX、PS/2等。由于在操作系统上支持的广泛性,因此Elbrus能够运行超过1000种现有的应用程序。不过,任何的兼容和转换都需要产生性能开销,Elbrus在2015年的文件中宣称,研发人员希望将这种转换x86和x86-64带来的性能损失控制在20%以内。

在内核方面,Elbrus给出了有关Elbrus-8CB核心的一些信息。整个Elbrus-8CB的内核执行部分拥有6个端口,并且这些端口几乎都是复合功能设计。举例来说,其中四个端口可以执行LD加载操作,2个端口可以执行ST存储操作,但是所有的端口都可以执行整数计算,四个端口可以执行浮点、矢量和比较操作等。这种复合型的端口设计在现代处理器架构中不算少见,但是每一个端口都是复合型的设计则很少见了,这可能和Elbrus-8CB采用的类VLIW指令集相关。

在安全特性方面,Elbrus也做出了一些加强,对所有的指针都添加了标签保护使得恶意操作无法伪造,并支持高级语言范围、对象边界由描述符控制等。其他一些该处理器的信息还包括:Elbrus处理器的架构拥有256个寄存器用于整数和实数数据,32个寄存器用于全局数据,224个寄存器用于过程堆栈。

目前本文对Elbrus的架构的了解和描述还非常粗浅。出现这种问题的原因还是其披露的资料太少且太老。其实不光是处理器架构,对整个Elbrus处理器家族和相关的产品,目前也没有太多的信息对外透露,尤其是具体的设计参数、性能等方面,因此对其究竟达到了怎样的水平高度难以有准确的判断。

独特的设计,神秘的产品

x86通用处理器的设计在这么多年以来都很少看到新的企业入场,除了英特尔和ARM,也就只有中国的威盛电子以及上海兆芯有相关产品推出。x86架构广泛的兼容性和高耸的专利墙既吸引着用户加入,又让设计人员和厂商望“墙”兴叹。本次Elbrus的出现,让人们看到一个特殊的可能性,且不说最终具体实现的效果如何,Elbrus最起码通过数代产品,实现了兼容x86和x86-64架构的一种全新方式,路是一步一步走的,能走通,最起码比没希望要好不少。

对Elbrus处理器而言,其应用范围主要是俄罗斯的政府和相关部门,可见其在市场方面也避开了英特尔和AMD这样的巨头,主要以定向销售为主。这一方面意味着Elbrus处理器可能会存在很长一段时间,但另一方面也意味着我们要进一步更深入地了解它就显得更为困难了,尤其是除了一些程序编译说明外,Elbrus的不少介绍文件还是2015年的。神秘有时候既是一种武器,也是一种防御,希望未来我们能看到更多Elbrus处理器的技术与性能信息。

猜你喜欢
英特尔计算能力端口
浅谈如何提高小学生的计算能力
小学生计算能力的提高策略
一种端口故障的解决方案
小学生计算能力的培养
英特尔携手一汽集团,引领汽车行业全新变革
英特尔扩充FPGA可编程加速卡产品组合
浅谈小学生计算能力的培养
端口阻塞与优先级
初识电脑端口
8端口IO-Link参考设计套件加快开发速度