家用Elbrus 8C处理器上的AERODISK存储


嗨,哈伯的读者。 我们想分享非常好的消息。 我们终于等待了新一代俄罗斯Elbrus 8C处理器的真正批量生产。 正式地,批量生产本来应该在2016年开始,但是实际上,大规模生产只是在2019年才开始,目前已经发布了大约4000个处理器。


批量生产开始后不久,这些处理器也出现在我们的Aerodisk中,为此,我们要感谢NORSI-TRANS公司,该公司为我们提供了支持Elbrus 8C处理器的Yakhont UVM硬件平台,用于移植存储软件。 这是一个现代,通用的平台,可以满足MCST的所有要求。 目前,特殊消费者和电信运营商正在使用该平台,以确保在运营搜索活动中实施既定行动。


目前,移植已成功完成,现在AERODISK存储器可与家用Elbrus处理器一起使用。


在本文中,我们将讨论处理器本身,处理器的历史,体系结构,当然,还涉及我们在Elbrus上实现存储的问题。


故事


Elbrus处理器的历史可以追溯到苏联时代。 1973年,在精密机械与计算机工程研究所。 S.A. 列别捷夫(以相同的谢尔盖·列别捷夫的名字命名,他曾领导第一台苏联计算机MESM,后来又开发了BESM)开始了多处理器计算系统“ Elbrus”的开发。 Vsevolod Sergeevich Burtsev负责开发,而副首席设计师之一Boris Artashesovich Babayan也积极参与了开发。



维塞沃洛德·谢尔盖维奇·布尔采夫



鲍里斯·阿塔蒂舍维奇(Boris Artashesovich Babayan)


当然,该项目的主要客户是苏联武装部队,该系列计算机最终成功用于创建指挥计算机中心和导弹防御系统以及其他特殊用途系统的发射系统。


第一台Elbrus计算机于1978年完成。 它具有模块化架构,可以包含1到10个基于介质集成电路的处理器。 这台机器的速度达到每秒1500万次操作。 这是所有10个处理器共有的RAM,最多可容纳2至20个动力机器字或64 MB。


后来发现,同时开发Elbrus的许多技术都在世界范围内研究,国际商业机器(IBM)也参与其中,但是与Elbrus的工作不同,这些项目的工作从未进行过已完成,但未产生成品。


根据Vsevolod Burtsev的说法,苏联工程师试图借鉴国内外开发商的最先进经验。 Elbrus计算机的体系结构还受到Burroughs计算机,Hewlett-Packard开发以及BESM-6开发人员经验的影响。


但是同时,许多发展都是原始的。 “ Elbrus-1”中最有趣的正是它的体系结构。


创建的超级计算机是苏联第一台使用超标量体系结构的计算机。 上世纪90年代,随着市场上价格适中的英特尔奔腾处理器的出现,才开始在国外大量使用超标量处理器。


另外,要组织计算机外围设备与RAM之间的数据流传输,可以使用特殊的输入/输出处理器。 系统中最多可能有四个这样的处理器;它们与中央处理器并行工作,并拥有自己的专用内存。


Elbrus-2


1985年,Elbrus有了逻辑上的延续,Elbrus-2计算机诞生并投入批量生产。 在体系结构上,它与以前的版本没有太大区别,但是它使用了新的元素库,从而使整体生产率提高了近10倍-从每秒1500万次操作增加到1.25亿次,计算机的RAM增加到1600万个72位字或144 MB。 Elbrus-2 I / O通道的最大吞吐量为120 MB / s。


“ Elbrus-2”已在车里雅宾斯克70核研究中心和MCC的Arzamas-16,A-135导弹防御系统以及其他军事设施中得到积极使用。



基于Elbrus处理器的复杂SPRUT C1200


布鲁斯的创立受到了苏联领导人的赞赏。 许多工程师获得了订单和奖章。 总设计师Vsevolod Burtsev和其他一些专家获得了国家奖项。 鲍里斯·巴巴扬(Boris Babayan)被授予十月革命勋章。


鲍里斯·巴巴扬(Boris Babayan)随后说:


“ 1978年,我们制造了第一台超标量机Elbrus-1。现在在西方国家,他们只制造这种架构的超标量。第一个超标量出现在第92年,我们的第78位。此外,我们制造的那版超标量类似于英特尔在第95年生产的奔腾Pro。”

在美国也证实了有关历史至高无上的这些话,摩托罗拉88110的开发商Keith Diefendorff(最早的西方超标量处理器之一)写道:


“ 1978年,大约是第一个西方超标量处理器出现之前的15年,在Elbrus-1中使用了一种处理器,每个周期发出两个指令,更改指令执行的顺序,重命名寄存器并通过假设执行。”

Elbrus-3


那是1986年,在完成第二个Elbrus的工作之后,ITM&VT几乎立即开始使用从根本上全新的处理器体系结构开发新的Elbrus-3系统。 鲍里斯·巴巴扬(Boris Babayan)将此方法称为“超标量后”。 英特尔Itanium处理器正是在以后(90年代中期)开始使用这种架构(后来称为VLIW / EPIC)(在苏联,这些发展始于1986年,并于1991年结束)。


使用编译器显式管理操作的并行性的想法首先在此计算复合体中实现。


1991年,第一台(也是不幸的)第一台Elbrus-3计算机发布了,无法完全调整。苏联解体后,没有人需要它,其发展和计划仍保留在纸上。


新架构的背景


在ITMiVT上创建苏联超级计算机的团队并没有破裂,而是继续以MCST(莫斯科SPARK技术中心)的名义作为独立的公司工作。 在90年代初,ICST开始与Sun Microsystems进行积极的合作,后者由ICST团队参与了UltraSPARC微处理器的开发。


正是在此期间,E2K体系结构项目诞生了,该项目最初由Sun资助。 后来,该项目变得完全独立,并且其中所有的知识产权都留在了ICST工作人员手中。


“如果我们继续在这一领域与Sun合作,那么一切都应该属于Sun。尽管90%的工作是在Sun出现之前完成的。” (鲍里斯·巴巴扬)

E2K架构


当我们讨论Elbrus处理器的体系结构时,经常会遇到IT行业的同事,我们听到以下陈述:


“ Elbrus是RISC体系结构”
“ Elbrus是EPIC架构”
“ Elbrus是SPARC体系结构”

实际上,这些陈述中没有一个是完全正确的,如果是,那只是部分的。


E2K体系结构是一个单独的原始处理器体系结构,E2K的主要功能是通过设置操作的显式并行性而实现的能效和出色的可伸缩性。 E2K架构是由ICST团队开发的,基于后超标量架构(即EPIC),并受SPARC架构(过去具有RISC)的影响。 同时,在创建四个基本体系结构(超标量,后超标量和SPARC)中的三个时,MCST直接参与其中。 世界真的很小。


为了避免进一步的混乱,我们绘制了一个简单的图,该图虽然很简单,但是却非常清楚地显示了E2K架构的根源。



现在更多地了解该架构的名称,与此相关的还有一个误解。


在不同的来源中,您可以找到此体系结构的以下名称:“ E2K”,“ Elbrus”,“ Elbrus 2000”,ELBRUS(“ ExpLicit基本资源利用调度”,即对基本资源的使用进行明确规划)。 所有这些名称都表示相同的东西-关于体系结构,但是在官方技术文档以及技术论坛中,名称E2K用于表示体系结构,因此在将来,如果我们谈论处理器体系结构,则使用术语“ E2K”,如果关于特定处理器,我们使用名称“ Elbrus”。


E2K架构的技术特征


在诸如RISC或CISC(x86,PowerPC,SPARC,MIPS,ARM)之类的传统体系结构中,处理器接收旨在用于顺序执行的指令流。 处理器可以检测独立的操作并并行运行它们(超标量),甚至可以更改它们的顺序(非常规执行)。 但是,动态依赖关系分析和对异常执行的支持在每个周期的命令启动和分析数量上有其局限性。 另外,处理器内部的相应块消耗大量能量,其最复杂的实现有时会导致稳定性或安全性问题。


在E2K架构中,编译器将大量工作用于依赖关系分析和优化操作顺序。 处理器接收所谓的输入。 宽命令,其中每个应在此时钟上运行的处理器所有执行设备的指令均已编码。 处理器不需要分析操作数之间的依赖关系,也不需要分析宽命令之间的重新排列操作:所有这些操作都由编译器根据源代码分析和处理器资源计划完成。 结果,处理器的硬件组件可以更简单并且更经济。


与RISC / CISC处理器硬件相比,编译器能够更彻底地分析源代码,并找到更多独立的操作。 因此,E2K架构中的并发执行器比传统架构中的要多。


E2K体系结构的当前功能:


  • 6个通道的算术逻辑器件(ALU)并行工作。
  • 256个84位寄存器的寄存器文件。
  • 循环的硬件支持,包括流水线。 提高CPU利用率。
  • 具有独立读取通道的可编程异步数据预分页设备。 使您可以隐藏访问内存的延迟并充分利用ALU。
  • 支持推测性计算和单位谓词。 它允许减少转换数量并同时执行程序的多个分支。
  • 一个广泛的团队能够在一个周期内最多填充23个操作(将操作数打包到矢量指令中时,最多可以进行33个操作)。


X86仿真


即使在架构设计阶段,开发人员也了解支持为Intel x86架构编写的软件的重要性。 为此,实现了将二进制x86代码动态转换(即在程序执行过程中或“即时”执行)将系统转换为E2K体系结构的处理器代码的系统。 该系统可以在应用程序模式(以WINE方式)和类似于虚拟机管理程序的模式下工作(这样就可以为x86架构运行整个来宾OS)。


由于有几个优化级别,因此可以实现翻译后代码的高速化。 成功启动了20多个操作系统(包括Windows的多个版本)和Elbrus计算中心上的数百个应用程序,证实了x86体系结构仿真的质量。


受保护程序执行模式


从Elbrus-1和Elbrus-2架构继承的最有趣的想法之一就是所谓的程序安全执行。 其本质是保证程序仅在初始化数据的情况下运行,检查所有内存访问是否属于有效地址范围,提供模块间保护(例如,保护调用程序免受库错误的影响)。 所有这些检查都是在硬件中完成的。 对于保护模式,有一个完善的编译器和运行时支持库。 应当理解,施加的限制使得不可能组织例如用C ++编写的代码的执行。


即使在Elbrus处理器的通常“无保护”操作模式下,其功能也会提高系统的可靠性。 因此,绑定信息的堆栈(用于过程调用的返回地址链)与用户数据的堆栈分开,并且不适用于欺骗返回地址的病毒中的此类攻击。


这些发展不仅使我们在性能和可伸缩性方面赶上并在将来超越竞争对手的体系结构,而且还提供了防止影响x86 / amd64的错误的保护。 像Meltdown(CVE-2017-5754),Spectre(CVE-2017-5753,CVE-2017-5715),RIDL(CVE-2018-12126,CVE-2018-12130),Fallout(CVE-2018-12127), ZombieLoad(CVE-2019-11091)等。


针对x86 / amd64体系结构中发现的漏洞的现代保护基于操作系统级别的补丁。 这就是为什么这些体系结构的当前和上一代处理器的性能下降是如此明显的原因,并且范围从30%到80%不等。 作为x86处理器的活跃用户,我们知道这一点,他们会遭受痛苦并继续“吃仙人掌”,但是对于我们(以及因此对于我们的客户)而言,解决这些问题的方法正处于萌芽状态,这无疑是有好处的,尤其是如果解决方案是俄语的话。


技术指标


与相似的Intel x86处理器相比,以下是过去(4C),当前(8C),新一代(8CB)和未来(16C)的Elbrus处理器的官方技术规格。



甚至粗略地看一下这张表都表明(这非常令人高兴),家用处理器的技术积压,似乎十年前是无法克服的,现在看来很小,而且在2021年Elbrus-16C的推出(除其他外,将支持虚拟化)将距离减小到最小。


Elbrus 8C处理器上的AERODISK存储


我们从理论到实践。 作为MTsST,Aerodisk,Basalt SPO(以前为Alt Linux)和NORSI-TRANS公司的战略联盟的一部分,开发并准备了一个数据存储系统以供运营,就安全性,功能,成本和性能而言,目前这还不是最好的。我们认为,这无疑是一个有价值的解决方案,可以为您提供我国适当水平的技术独立性。
现在的细节...


硬体


存储硬件是基于NORSI-TRANS的通用平台Yakhont UVM来实现的。 Yakhont UVM平台获得了俄罗斯起源的电信设备的地位,并被纳入俄罗斯无线电电子产品的统一注册簿中。 该系统由两个单独的存储控制器(每个2U)组成,它们通过1G或10G以太网互连以及使用SAS连接的公用磁盘架互连。


当然,这并不像我们通常使用的“盒式集群”格式(将带有通用背板的控制器和驱动器安装在同一2U机箱中)那样精美,但是在不久的将来,它将可用。 这里最主要的是要运作良好,但是稍后我们将考虑“弓形”。




在内部,每个控制器都有一个带有四个RAM插槽(用于8C处理器的DDR3)的单处理器主板。 每个控制器还具有4个1G以太网端口(AERODISK ENGINE使用其中两个作为服务)和三个PCIe连接器,用于后端(SAS)和前端(以太网或光纤通道)适配器。


作为引导磁盘,我们使用了GS Nanotech的俄罗斯SATA SSD磁盘,我们已对其进行反复测试并在项目中使用。



当我们初次接触该平台时,我们进行了仔细检查。 我们对组装和焊接的质量没有任何疑问;所有操作都整齐而可靠地完成。


作业系统


作为操作系统,使用Alt 8SP OS版本进行认证。 在不久的将来,我们计划使用Aerodisk存储软件为Alt OS创建一个插件并不断更新。


该发行版的版本基于E2K的Linux 4.9内核的当前稳定版本(MCST的专家移植了具有长期支持的分支),并补充了功能和安全性补丁。 Alt OS中的所有软件包都是使用ALT Linux Team项目的原始事务组装系统直接在Elbrus上收集的,这可以减少端口本身的人工成本,并更加关注产品质量。


使用可用的存储库,任何版本的Elbrus的Alt OS都可以在功能上进行显着扩展(从第8版的约6000个源软件包到第9版的约12个源软件包)。


之所以做出这一选择,是因为Alt OS的开发者Basalt SPO公司正在与各种平台上的软件和设备的其他开发者积极合作,从而在硬件和软件系统的框架内提供无缝的交互。


存储软件


移植时,我们立即放弃了使用E2K支持的x86仿真的想法,而开始直接使用处理器(因为Alt已经具备了必要的工具)。


除其他事项外,本机执行模式提供了更好的安全性(使用相同的三个硬件堆栈代替了三个硬件堆栈)并提高了性能(无需为二进制转换器工作而在八个内核中分配一个或两个内核,并且编译器的工作比JIT更好)。


实际上,在E2K上实施AERODISK ENGINE时,支持x86中大多数的现有存储功能。 使用当前版本的AERODISK ENGINE作为存储系统软件(A-CORE 2.30版)


没问题,以下功能已在E2K上启动并经过测试可在产品中使用:


  • 最多两个控制器和多路径I / O(mpio)的容错能力
  • 使用精简卷(RDG,DDP池; FC,iSCSI,NFS,SMB协议,包括与Active Directory的集成)进行块和文件访问
  • 高达三重奇偶校验的不同RAID级别(包括使用RAID构造函数的能力)
  • 混合存储(将SSD和HDD组合在同一个池中,即缓存和撕裂)
  • 具有重复数据删除和压缩功能的节省空间选项
  • ROW快照,克隆和不同的复制选项
  • 以及其他一些小的但有用的功能,例如QoS,全局热备用,VLAN,BOND等。

E2K , ( ) -, all-flash 20-30%.


, , , .



, , .


, (2xCPU E8C 1.3 Ghz, 32 GB RAM + 4 SAS SSD 800GB 3DWD), RAM-, DDP RAID-10 LUN 500G LUN- iSCSI (10G Ethernet) Linux-. FIO.


.



60%, .. , .


, highload - , , , 80% , .


.



, 8 – 2019 4000 . , 4 5000, .


, , , .
2020 8, . , 2020 -8 .


— .


, ( -16). , .


, , , , . , , .


, , , - , – , , . , , .



. , , , !


, , , , , . .


- , 100% – ))).



, :
https://www.ixbt.com/cpu/e2k-spec.html


«»:
https://topwar.ru/34409-istoriya-kompyuterov-elbrus.html


e2k:
https://ru.wikipedia.org/wiki/%D0%AD%D0%BB%D1%8C%D0%B1%D1%80%D1%83%D1%81_2000


4- (-8) 5- (-8, 2020 ):
https://ru.wikipedia.org/wiki/%D0%AD%D0%BB%D1%8C%D0%B1%D1%80%D1%83%D1%81-8%D0%A1


6- (-16, 2021 ):
https://ru.wikipedia.org/wiki/%D0%AD%D0%BB%D1%8C%D0%B1%D1%80%D1%83%D1%81-16%D0%A1


:
http://www.elbrus.ru/elbrus_arch


- «» :
http://www.mcst.ru/files/5a9eb2/a10cd8/501810/000003/kim_a._k._perekatov_v._i._feldman_v._m._na_puti_k_rossiyskoy_ekzasisteme_plany_razrabotchikov.pdf


«» , :
http://www.mcst.ru/files/5472ef/770cd8/50ea05/000001/rossiyskietehnologiielbrus-it-edu9-201410l.pdf


, :
http://www.mcst.ru/e2k_arch.shtml


:
https://www.osp.ru/os/1999/05-06/179819


, :
https://yadi.sk/i/HDj7d31jTDlDgA


:
https://altlinux.org/


https://sdelanounas.ru/blog/shigorin/

Source: https://habr.com/ru/post/zh-CN482434/


All Articles