国内处理器 Elbrus 8C 上的 SHD AERODISK

国内处理器 Elbrus 8C 上的 SHD AERODISK

你好哈布尔读者。 我们想分享一些非常好的消息。 我们终于等到了俄罗斯新一代 Elbrus 8C 处理器的真正量产。 按照官方说法,批量生产最早应该在 2016 年开始,但实际上,量产直到 2019 年才开始,并且已经发布了大约 4000 颗处理器。

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

目前移植工作已经顺利完成,AERODISK存储系统现已推出国产Elbrus处理器版本。

在本文中,我们将讨论处理器本身、它们的历史、架构,当然还有我们在 Elbrus 上实现的存储系统。

故事

Elbrus 处理器的历史可以追溯到苏联时代。 1973年在精密机械与计算机工程研究所命名SA 列别杰夫(以谢尔盖·列别杰夫的名字命名,他曾领导第一台苏联计算机 MESM 和后来的 BESM 的开发),称为 Elbrus 的多处理器计算系统的开发开始了。 Vsevolod Sergeevich Burtsev 监督了开发,而作为副总设计师之一的 Boris Artashesovich Babayan 也积极参与了开发。

国内处理器 Elbrus 8C 上的 SHD AERODISK
谢沃洛德·谢尔盖耶维奇·布尔采夫

国内处理器 Elbrus 8C 上的 SHD AERODISK
鲍里斯·阿塔舍索维奇·巴巴扬

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

国内处理器 Elbrus 8C 上的 SHD AERODISK

第一台 Elbrus 计算机于 1978 年完成。 它具有模块化架构,可以包含 1 到 10 个基于中等集成方案的处理器。 这台机器的速度达到了每秒15万次操作。 所有 10 个处理器共有的 RAM 容量高达 2 的机器字的 20 次方或 64 MB。

后来发现,Elbrus 开发中使用的很多技术都是世界上同时研究的,国际商业机器公司(IBM)都在搞,但是这些项目的工作,和 Elbrus 的工作不同,并没有已经完成,并没有最终导致成品的产生。

根据 Vsevolod Burtsev 的说法,苏联工程师试图应用国内外开发人员的最先进经验。 Elbrus 计算机的体系结构也受到 Burroughs 计算机、惠普开发以及 BESM-6 开发人员经验的影响。

但与此同时,许多发展都是原创的。 Elbrus-1 最有趣的地方在于它的架构。

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

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

厄尔布鲁士峰,2

1985 年,Elbrus 获得了其合乎逻辑的延续,Elbrus-2 计算机被创建并投入批量生产。 在架构方面,它与其前身没有太大区别,但使用了新的元素库,这使得整体性能提高了近 10 倍——从每秒 15 万次运算增加到 125 亿次。增加到 16 万个 72 位字或 144 MB。 Elbrus-2 I/O 通道的最大带宽为 120 MB/s。

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

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

这些奖项实至名归,鲍里斯·巴巴扬后来说:

“1978 年,我们制造了第一台超标量机器 Elbrus-1。 现在在西方,他们只制造这种架构的超标量。 第一个超标量于 92 年出现在西方,我们的是 78 年。 此外,我们制作的超标量版本类似于英特尔在 95 年制作的 Pentium Pro。”

这些关于历史优势的话在美国也得到了证实,摩托罗拉 88110(西方最早的超标量处理器之一)的开发者 Keith Diefendorff 写道:

“在 1978 年,也就是第一个西方超标量处理器出现的将近 15 年之前,Elbrus-1 使用了一个处理器,在一个周期内发出两条指令,改变指令执行的顺序,重命名寄存器并按假设执行。”

厄尔布鲁士峰,3

那是 1986 年,在第二个 Elbrus 的工作完成后,ITMiVT 几乎立即开始使用全新的处理器架构开发新的 Elbrus-3 系统。 Boris Babayan 将这种方法称为“后超标量”。 正是这种架构,后来称为 VLIW / EPIC,在未来(90 年代中期)英特尔安腾处理器开始使用(在苏联,这些开发始于 1986 年,结束于 1991 年)。

在这个计算综合体中,首先实现了在编译器的帮助下显式控制操作并行性的想法。

1991 年,第一台也是唯一一台不幸的是 Elbrus-3 计算机发布,无法完全调整,苏联解体后,没有人需要它,开发和计划只停留在纸上。

新架构的背景

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

正是在这一时期,E2K 架构项目应运而生,该项目最初由 Sun 资助。 后来,该项目完全独立,其所有知识产权均归MCST团队所有。

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

E2K架构

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

“Elbrus 是一个 RISC 架构”
“Elbrus 是史诗般的建筑”
“Elbrus 是 SPARC 架构”

事实上,这些陈述都不是完全正确的,或者即使是,也只是部分正确。

E2K 架构是一个独立的原始处理器架构,E2K 的主要品质是能源效率和出色的可扩展性,通过指定明确的并行操作来实现。 E2K 架构由 MCST 团队开发,基于后超标量架构(类似于 EPIC),受到 SPARC 架构(具有 RISC 过去)的一些影响。 同时,MCST 直接参与了四个基本架构中的三个(Superscalars、Post-Superscalars 和 SPARC)的创建。 世界真的很小。

为了避免将来出现混淆,我们画了一个简单的图表,虽然简化了,但非常清楚地显示了 E2K 架构的根源。

国内处理器 Elbrus 8C 上的 SHD AERODISK

现在再谈谈架构的名称,对此也存在误解。

在各种来源中,您可以找到此体系结构的以下名称:“E2K”、“Elbrus”、“Elbrus 2000”、ELBRUS(“ExpLicit Basic Resources Utilization Scheduling”,即显式规划基本资源的使用)。 所有这些名字都说的是同一件事——关于架构,但在官方技术文档中,以及在技术论坛上,E2K这个名字是用来指代架构的,所以在未来,如果我们谈论处理器架构,我们使用术语“E2K”,如果是关于特定处理器,那么我们使用名称“Elbrus”。

E2K架构的技术特点

在 RISC 或 CISC(x86、PowerPC、SPARC、MIPS、ARM)等传统架构中,处理器接收为顺序执行而设计的指令流。 处理器可以检测独立操作并并行运行它们(超标量),甚至可以更改它们的顺序(乱序)。 然而,动态依赖分析和对无序执行的支持在每个周期启动和分析的命令数量方面有其局限性。 此外,处理器内部的相应模块会消耗大量能量,其最复杂的实现有时会导致稳定性或安全问题。

在E2K架构中,分析依赖关系和优化操作顺序的主要工作是由编译器承担的。 处理器接收所谓的。 宽指令,每条指令都为必须在给定时钟周期启动的所有处理器执行设备编码指令。 处理器不需要分析操作数之间的依赖关系或宽指令之间的交换操作:编译器根据源代码分析和处理器资源规划来完成所有这些工作。 结果,处理器硬件可以更简单和更经济。

编译器能够比处理器的 RISC/CISC 硬件更彻底地解析源代码,并找到更多的独立操作。 因此,E2K架构比传统架构拥有更多的并行执行单元。

E2K架构的当前特点:

  • 6 个并行运算通道的算术逻辑单元 (ALU)。
  • 256个84位寄存器的寄存器文件。
  • 循环的硬件支持,包括流水线。 提高处理器资源使用效率。
  • 具有独立读出通道的可编程异步数据预泵。 允许您隐藏内存访问的延迟并更充分地利用 ALU。
  • 支持推测计算和一位谓词。 允许您减少转换次数并并行执行程序的多个分支。
  • 一种宽命令,能够在一个时钟周期内指定最多 23 个操作,并具有最大填充(将操作数打包到向量指令时超过 33 个操作)。

国内处理器 Elbrus 8C 上的 SHD AERODISK

仿真 x86

即使在架构设计阶段,开发人员也明白支持为英特尔 x86 架构编写的软件的重要性。 为此,实施了一个系统,用于将 x86 二进制代码动态(即,在程序执行期间或“运行中”)转换为 E2K 架构处理器代码。 这个系统既可以工作在应用程序模式下(以WINE的方式),也可以工作在类似于hypervisor的模式下(然后可以运行整个x86架构的guest OS)。

得益于多级优化,可以实现翻译代码的高速运行。 x86 架构仿真的质量通过 20 多个操作系统(包括多个版本的 Windows)和数百个应用程序在 Elbrus 计算系统上的成功发布得到证实。

受保护的程序执行模式

从 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 处理器的活跃用户,知道这一点,遭受并继续“吃仙人掌”,但对我们(以及因此对我们的客户)而言,这些问题的解决方案处于萌芽状态是一个毫无疑问的好处,特别是如果解决方案是俄罗斯的。

Техническиехарактеристики

以下是过去 (4C)、当前 (8C)、新 (8CB) 和未来 (16C) 代 Elbrus 处理器与类似英特尔 x86 处理器相比的官方技术特性。

国内处理器 Elbrus 8C 上的 SHD AERODISK

即使粗略地看一下这张表(这很令人高兴),国内处理器的技术积压在 10 年前似乎无法克服,现在看来已经很小了,2021 年随着 Elbrus-16C 的推出(其中,其他东西,将支持虚拟化)将减少到最小距离。

Elbrus 8C 处理器上的 SHD AERODISK

我们从理论到实践。 作为 MCST、Aerodisk、Basalt SPO(前身为 Alt Linux)和 NORSI-TRANS 战略联盟的一部分,开发并投入运行了数据存储系统,该系统在安全性、功能性、成本和性能,在我们看来,这是一个不可否认的有价值的解决方案,可以确保我们祖国的技术独立性达到适当水平。
现在细节...

硬件部分

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

当然,这不如我们通常使用的“Cluster in a box”形式(将具有公共背板的控制器和磁盘安装在一个 2U 机箱中)那么漂亮,但在不久的将来它也会面世。 这里最主要的是它运作良好,但我们稍后会考虑“弓”。

国内处理器 Elbrus 8C 上的 SHD AERODISK

国内处理器 Elbrus 8C 上的 SHD AERODISK

在引擎盖下,每个控制器都有一个带有四个 RAM 插槽(DDR3 用于 8C 处理器)的单处理器主板。 每个控制器上还有 4 个 1G 以太网端口(其中两个被 AERODISK ENGINE 软件用作服务)和三个用于后端 (SAS) 和前端(以太网或光纤通道)适配器的 PCIe 插槽。

作为启动盘,我们使用了GS Nanotech的俄罗斯SATA SSD盘,我们在项目中反复测试和使用过。

国内处理器 Elbrus 8C 上的 SHD AERODISK

当我们第一次见到这个平台时,我们仔细检查了它。 我们对装配和焊接的质量没有任何疑问,一切都整齐可靠地完成了。

操作系统

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

此版本的发行版基于 E4.9K(由 MCST 专家移植的具有长期支持的分支)的当前稳定版 Linux 2 内核构建,并补充了功能和安全补丁。 Alt OS 中的所有包都是使用 ALT Linux Team 项目的原始事务构建系统直接在 Elbrus 上构建的,这使得可以减少传输本身的人工成本,并更加关注产品质量。

Elbrus 的任何 Alt OS 版本都可以使用可用的存储库在功能方面进行显着扩展(从第八个版本的大约 6 个源包到第九个版本的大约 12 个)。

之所以做出选择,还因为 Alt OS 的开发商 Basalt SPO 正积极与各种平台上的其他软件和设备开发商合作,确保硬件和软件系统之间的无缝交互。

软件存储系统

在移植时,我们立即放弃了使用 E2K 中支持的 x86 仿真的想法,开始直接使用处理器(幸运的是,Alt 已经有了这方面的必要工具)。

除其他事项外,本机执行模式提供了更好的安全性(相同的三个硬件堆栈而不是一个)和更高的性能(无需为二进制翻译器分配八个内核中的一个或两个内核,编译器会自行执行工作比 JIT 更好)。

事实上,AERODISK ENGINE 的 E2K 实现支持 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 上,我们设法获得了除多控制器(两个以上)和多线程 I/O 调度程序之外的所有功能,这使我们能够将全闪存池的性能提高 20-30% .

但是我们当然也会添加这些有用的功能,只是时间问题。

关于性能的一点

在顺利通过了存储系统基本功能的测试之后,我们当然要开始进行负载测试了。

例如,在禁用 RAM 缓存的双控制器存储系统(2xCPU E8C 1.3 Ghz,32 GB RAM + 4 SAS SSD 800GB 3DWD)上,我们创建了两个具有主 RAID-10 级别和两个 500G 的 DDP 池LUN,并通过 iSCSI(10G 以太网)将这些 LUN 连接到 Linux 主机。 并使用 FIO 程序对小型顺序负载块进行了一项基本的每小时测试。

最初的结果非常积极。

国内处理器 Elbrus 8C 上的 SHD AERODISK

处理器上的负载平均为 60%,即这是存储可以安全工作的基本级别。

是的,这远谈不上高负载,这对于高性能 DBMS 来说显然是不够的,但是,正如我们的实践所表明的,这些特性对于使用存储系统的 80% 的一般任务来说已经足够了。

稍后,我们计划返回一份关于 Elbrus 作为存储平台的负载测试的详细报告。

光明的未来

正如我们上面所写,Elbrus 8C 的量产实际上是最近才开始的——在 2019 年初,到 4000 月,已经发布了大约 4 个处理器。 相比之下,上一代Elbrus 5000C的整个生产周期只生产了XNUMX颗处理器,所以是有进步的。

很显然,这对俄罗斯市场来说也是沧海一粟,但路要走的人才能掌握。
计划在 2020 年发布数万个 Elbrus 8C 处理器,这已经是一个严肃的数字。 此外,在 2020 年期间,Elbrus-8SV 处理器应该由 MCST 团队带入量产。

这样的生产计划是为了在整个国内服务器处理器市场中占有非常重要的份额。

结果,现在我们拥有了一个优秀的现代俄罗斯处理器,我们认为它具有清晰且正确的开发策略,在此基础上有最安全和经过认证的俄罗斯制造数据存储系统(并且在未来,Elbrus-16C 上的虚拟化系统)。 俄罗斯系统在现代条件下是目前物理上可能的。

我们经常在新闻中看到公司的下一个史诗般的失败,这些公司自豪地称自己为俄罗斯制造商,但实际上从事重新粘贴标签,除了他们的标记外,没有为外国制造商的产品增加任何价值。 不幸的是,这些公司给所有真正的俄罗斯开发商和制造商蒙上了阴影。

通过这篇文章,我们想清楚地表明,在我们国家,过去、现在和将来都有真正有效地制造现代复杂 IT 系统并正在积极发展的公司,IT 中的进口替代不是亵渎,而是现实我们都活着。 你可以不爱这个现实,你可以批评它,或者你可以努力让它变得更好。

国内处理器 Elbrus 8C 上的 SHD AERODISK

苏联的解体一度阻止了 Elbrus 的创造者团队成为处理器世界的杰出参与者,并迫使该团队为他们的海外开发寻求资金。 找到了,工作完成了,知识产权也保住了,为此我要对这些人表示衷心的感谢!

目前就这些,请写下您的评论、问题,当然还有批评。 我们总是很开心。

此外,我代表整个 Aerodisk 公司,祝贺整个俄罗斯 IT 社区即将到来的新年和圣诞节,希望 100% 的正常运行时间 - 并且备份在新的一年对任何人都没有用)))。

使用的材料

一篇对技术、架构和个性进行一般描述的文章:
https://www.ixbt.com/cpu/e2k-spec.html

名为“Elbrus”的计算机简史:
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代(Elbrus-8S)和第5代(Elbrus-8SV,2020)的:
https://ru.wikipedia.org/wiki/%D0%AD%D0%BB%D1%8C%D0%B1%D1%80%D1%83%D1%81-8%D0%A1

下一代第 6 代处理器(Elbrus-16SV,2021)的规格:
https://ru.wikipedia.org/wiki/%D0%AD%D0%BB%D1%8C%D0%B1%D1%80%D1%83%D1%81-16%D0%A1

官方对Elbrus架构的描述:
http://www.elbrus.ru/elbrus_arch

硬件和软件平台“Elbrus”的开发人员计划创建具有百亿亿级性能的超级计算机:
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

用于个人计算机、服务器和超级计算机的俄罗斯 Elbrus 技术:
http://www.mcst.ru/files/5472ef/770cd8/50ea05/000001/rossiyskietehnologiielbrus-it-edu9-201410l.pdf

Boris Babayan 的一篇旧文章,但仍然相关:
http://www.mcst.ru/e2k_arch.shtml

Mikhail Kuzminsky 的旧文章:
https://www.osp.ru/os/1999/05-06/179819

MCST 介绍,一般信息:
https://yadi.sk/i/HDj7d31jTDlDgA

有关 Elbrus 平台的 Alt OS 的信息:
https://altlinux.org/эльбрус

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

来源: habr.com

添加评论