苏联导弹防御系统的诞生。 “埃尔伯勒斯”

26
苏联导弹防御系统的诞生。 “埃尔伯勒斯”

Burtsev 从他的老师那里继承了对西方原型的热爱和尊重,是的,原则上,从 BESM-6 开始,ITMiVT 积极与西方交流信息,主要是与美国的 IBM 和英国的曼彻斯特大学(正是这种友谊在 1969 年那次令人难忘的会议上,迫使列别捷夫(包括 h.)为英国 ICL 的利益游说,而不是为德国 Robotron 游说)。

自然,“厄尔布鲁士”不可能有原型,而布尔采夫本人也公开承认了这一点。



答案很明确:“是的。” 在开始设计新计算机之前,我们总是非常仔细地研究全世界在这一领域的发展。
当时提出了提高机器语言水平的问题,以缩小高级语言与命令语言之间的差距,以提高通过高级语言编写的程序的效率。
在这个方向上,世界上三个地方工作过。
从理论上讲,Ailif 的工作是最强大的:“构造基本机器的原理”,在曼彻斯特大学的 Kilburn 和 Edwards 实验室创建了 MU-5 机器(“Manchester University-5”),在 Burrows,机器是为银行和军事应用而开发的。
我在这三家公司工作过,与主要开发人员进行了交谈,并获得了有关这些开发所体现的原则的必要材料。
在设计 Elbrus-1 和 Elbrus-2 MVK 时,我们从先进的开发中汲取了一切对我们来说似乎有价值的东西。 这就是制造和开发所有新机器的方式。
Elbrus-1 和 Elbrus-2 MVK 的开发受到 HP、5E26、BESM-6 以及当时许多其他开发的影响。

因此,与许多人不同的是,Burtsev 承认他毫不犹豫地从邻居那里慷慨地借用了建筑理念,甚至说去哪里找尾巴。

让我们利用慷慨的报价,挖掘 Elbrus 的三个来源和三个组成部分。


第一个是 John Iliffe 的专着 Basic Machine Principles(Macdonald & Co;第 1 版,1 年 1968 月 12 日)和他的文章 Elements of BLM(The Computer Journal,第 3 卷,第 1969 期,251 年 258 月,第 5-700 页),第二个是在曼彻斯特大学作为实验制造的几乎不为人知的 MUXNUMX 计算机,第三台是 Burroughs XNUMX 系列。

这不是巴勒斯本人的克隆吗?


让我们开始按顺序理解。

首先,有些读者可能听说过“冯·诺依曼架构”这个词,经常被用在吹嘘的语境中:“这里我们设计了一个独特的非冯·诺依曼计算机”。 当然,这并没有什么独特之处,只是因为 1950 年代不再制造具有冯诺依曼架构的机器。

在处理完 ENIAC(它以选项卡的方式编程,有很多电线在周围流动,没有任何问题可以通过加载到内存中的程序来控制计算,也没有问题)为下一个机器,称为 EDSAC,Mauchly 和 Eckert 提出了其设计的主要想法。

它们如下:存储命令、地址和数据的同构存储器,它们的区别仅在于访问方式和产生的影响; 内存被划分为可寻址单元,访问需要计算二进制地址; 最后,程序控制的原理——机器的操作,是一系列操作,用于从内存中加载单元格的内容、操作它们并将它们卸载回内存中,在从相同顺序加载的命令的控制下记忆。

从 1945 年到 1955 年,世界上生产的几乎所有机器(只有几十台)都遵循这些原则,因为它们是由广泛熟悉 EDVAC 报告初稿的学术科学家制造的,该报告由Herman Heine Goldstine 代表策展人 von Neumann。

当然,这种情况不会持续太久,因为纯冯诺依曼机更像是一种数学抽象,就像图灵机一样。 将它用于科学目的很有用,但是根据这些想法构建的真实计算机结果太慢了。

纯冯诺依曼机器的时代早在 1955-1956 年就结束了,当时人们第一次开始思考管道、推测执行、数据驱动架构等这些技巧。

在冯·诺依曼逝世的那一年,配备 5 个灯、190 个二极管和 3 个晶体管的 MANIAC II 计算机(数学分析仪数值积分器和自动计算机模型 II)在洛斯阿拉莫斯科学实验室推出。

它运行在 48 位数据和 24 位指令上,有 4 字 RAM,平均速度为 096 KIPS。

这台机器是由 Martin H. Graham 设计的,他提出了一个全新的想法——用适当的标签标记内存中的数据,以提高可靠性和易于编程。

第二年,格雷厄姆受德克萨斯州休斯顿莱斯大学的工作人员的邀请,帮助他们建造了一台与洛斯阿拉莫斯一样强大的计算机。 R1 Rice Institute Computer 项目持续了三年,并在 1961 年准备就绪(后来它被美国大学的标准 IBM 7040 取代,具有讽刺意味的是,Burroughs B5500)。

与 MANIAC II 一样,每个字 2 条指令的解码方案在 Graham 看来过于花哨,因此 R1 对 54 位字进行操作,整个字的指令宽度固定,并且具有类似的标签架构。 实际字长为63位,其中7位为纠错码,2位为标签。

R1 的间接寻址机制比 IBM 709 先进得多——事实上,它们几乎是来自未来 Burroughs 机器的现成描述符。 格雷厄姆还是一位才华横溢的电气工程师,他为 R1 发明了一种新型的灯二极管单元,称为单面栅极,这使得那些年来实现 1 MHz 的出色频率成为可能。 该机器有 15 位地址、8 个数据/命令寄存器和 8 个地址寄存器。


第一代标记架构在冯诺依曼去世后立即出现。 Ailif 和 Graham 的机器,左侧是 MANIAC II 处理器的一部分,右侧 - Ailif 本人参与了主机架 R1 的安装。 照片 https://www.sciencephoto.com 和 https://scholarship.rice.edu

美国莱斯大学有点像苏联的 MINEP,因此壳牌石油公司部分资助了计算机(将用于研究石油的流体动力学)的创建也就不足为奇了。

她的策展人是鲍勃·巴顿(罗伯特·斯坦利·巴顿饰),一位才华横溢的电子工程师。 1958 年,他参加了一门数学逻辑和波兰符号应用于代数的课程,并前往 Burroughs 工作,并于 1961 年构建了基于堆栈标签架构的传奇 B5000。

同一位英国人 Ilif 也在 R1 软件上工作。 他的团队创建了SPIREL操作系统、AP1符号汇编器和GENIE语言,成为OOP的先驱之一。 该操作系统具有非常先进的动态内存分配机制和垃圾收集器,以及数据和代码保护机制。

对于他的操作系统,Ailif 使用指向数据向量的指针向量开发了一种新的数组寻址机制。 这个想法比 Fortran 风格的寻址(地址包含数组的每个元素的步长和偏移量)如此先进,以至于它以创建者的名字命名,从那时起,从 Ferranti Atlas 到 Java,Ailif 向量无处不在, Python、Ruby、Visual Basic .NET、Perl、PHP、JavaScript、Objective-C 和 Swift。


使用 Ailif 向量来处理 3x3 矩阵 (https://www.researchgate.net)

在 1950 年代后期,冯诺依曼的机器理论模型面临着一个没有足够答案的挑战(因此完全死了)。

计算机变得足够快,以至于只有一个人无法加载它们 - 出现了具有终端访问和多任务操作系统的经典大型机的概念。

我们不会深入研究架构师在多任务处理过程中面临的复杂性(任何有关操作系统设计的明智教科书都会这样做),我们只注意到代码可重入性对其实现至关重要,即运行能力同一程序的多个实例同时处理不同的数据,从而保护一个用户的数据免受另一用户的更改。

将所有这些问题完全交给操作系统架构师和系统程序员似乎不是一个好主意——软件开发的复杂性会增加太多(请记住 OS / 360 项目如何以惊人的失败告终,Multics 也没有脱掉)。

还有另一种出路——为计算机本身创建一个合适的架构。

R1 的同事几乎同时考虑了这些可能性——设计 B5000 的实践者 Barton 和编写了非常启发 Burtsev 的基本机器原理的理论家 Ailif。

ICL(我们从未合作过)从 1963 年到 1968 年领导了高级架构的开发(这是在这篇文章的基础上编写的),Ilif 为他们构建了一个 BLM 原型,使用更先进的硬件内存管理方法比在 Burroughs 机器中。

Ailif 的主要思想是试图避免其他系统的标准(在那些年,缓慢且低效)纯粹基于软件方法的内存共享机制 - 上下文切换(OS 架构的一个术语,简单来说,意味着临时卸载和保存一个正在运行的进程并加载和开始执行另一个)由操作系统本身。 在他看来,使用描述符的硬件方法效率更高。

BLM 项目于 1969 年结束,但其开发部分用于 2900 年发布的先进 ICL 1974 系列大型机系列(我们完全可以联合开发,但是,唉)。


不幸的是,第二代已经是标签描述符机器,只有这张来自《基于描述符的计算机系统》(Levy,Henry M. 1984)一书的照片来自 BLM。 指挥系统是从 Ailif 的原始文章中复制的(以便读者可以沉浸在 Burtsev 之后的问题中)。

自然,有效的内存保护(以及因此的时间共享)问题是 1960 年代几乎所有计算机科学家和公司都关心的问题。

曼彻斯特大学并没有袖手旁观,而是建造了它的第五台计算机,称为 MU5。

该机器自 1966 年以来是与同一个 ICL 合作开发的,该计算机的性能应该比 Ferranti Atlas 快 20 倍。 发展从 1969 年持续到 1974 年。

MU5 由 MUSS 操作系统控制,包括三个处理器——MU5 本身、ICL 1905E 和 PDP-11。 所有最先进的元素都可用:标签描述符架构、关联存储器、指令预取,一般来说——这是那些年技术的顶峰。


Manchester Machine 5 - 唯一的照片,对指挥系统和架构的出色描述(https://ethw.org)

MU5 是 ICL 2900 系列的基础,并在大学工作到 1982 年。

最后一台曼彻斯特计算机是 MU6,它由三台机器组成:MU66P,一种用作 PC 的高级微处理器实现; MU66G 是功能强大的标量科学超级计算机,MU66V 是矢量并行系统。

科学家们还没有掌握微处理器架构的发展,MU66G 是在 1982 年至 1987 年期间创建并在该部门工作的,而 MU66V 的原型是在摩托罗拉 68k 上构建的,具有矢量运算仿真。


ICL 2900 系列是与 S/360 竞争激烈的少数原始机器之一。 对于 1980 年代的英国用户来说,这个系列充满了温暖和怀旧,至于苏联的 BESM-6。 照片 http://www.tavi.co.uk 和 http://www.computinghistory.org.uk

描述符机的进一步发展是所谓的方案。 基于能力的寻址(字面意思是“基于能力的寻址”,没有完善的俄语翻译,因为国内学校对这种机器不熟悉,在翻译《现代计算机体系结构:2本书》一书时)( Myers GJ , 1985) 非常恰当地命名为潜在寻址)。

潜在寻址的含义是指针被特殊的受保护对象所取代,这些对象只能在操作系统内核的特殊特权进程执行的特权指令的帮助下创建。 这允许内核控制哪些进程可以访问内存中的哪些对象,而根本不必使用单独的地址空间,因此没有上下文切换的开销。

作为间接影响,这种方案导致了同构或平坦的内存模型——从今以后(从低级驱动程序程序员的角度来看!)在 RAM 中或磁盘上的对象之间没有接口差异,访问是绝对统一,使用对受保护对象的调用。 对象列表可以存储在一个特殊的内存段中(例如,在 Plessey 系统 250 中,创建于 1969-1972 年,它是一种非常深奥的计算模型的硬件实施例,称为 λ-演算)或用一个特殊的位,如在原型 IBM System /38 中。

Plessey System 250 是为军方开发的,并作为国防部通信网络的中央机器在海湾战争期间成功使用。

这台计算机是网络安全的绝对巅峰,在这台机器中没有超级用户作为一个阶级拥有无限权限,也没有办法通过黑客来提升自己的权限来做不应该做的事情。


Pless 250 唯一已知的照片(来自 Kenneth J Hamer-Hodges 的收藏)和来自专着 Capability Concept Mechanisms And Structure In System 250 的潜在寻址操作图,DM England,1974。

这种架构在 1970 年代至 1980 年代被认为是令人难以置信的进步和先进,由许多公司和研究小组开发,包括 CAP 计算机机器(剑桥,1970-1977)、Flex 计算机系统(皇家信号和雷达机构,1970 年代)、三Rivers PERQ(卡内基梅隆大学和 ICL,1980-1985)和最著名的失败的 Intel iAPX 432 微处理器(1981)。

有趣的是,90 年代和 1960 年代所有最原始和最奇怪的建筑解决方案的发起者中有 1970% 是英国人(在 1980 年代 - 日本人,结果相似),而不是美国人。

英国科学家(是的,就是那些!)竭尽全力保持在潮流的顶端,并确认他们作为杰出的计算机科学理论家的资格。 唯一遗憾的是,就像苏联计算机学术发展的情况一样,所有这些项目都只是纸上谈兵。

ICL拼命想进入世界顶级的先进铁制造商,但是,可惜没有成功。

美国人起初以为盎格鲁-撒克逊的同事们,鉴于他们自图灵时代以来对 IT 的开创性贡献,不会给出糟糕的建议,并被严重烧毁了两次——而英特尔 iAPX 432 和 IBM System/38 惨遭失败,这导致了 1980 年代中期向现代处理器架构的重大转变(就在那时,美国计算机工程学院发现了 RISC 机器的原理,结果证明它从各个方面都非常成功,以至于 99% 的现代计算机不知何故根据这些模式构建)。


CAP 计算机仍在剑桥实验室、IBM System/38 原型和三河 PERQ 工作站(照片 https://en.wikipedia.org 和 https://www.chiark.greenend.org.uk)

有时甚至很有趣——一所成熟的苏英学校在 1980 年代凭借其先进的生产文化、我们共同的疯狂想法以及苏联为发展注入数十亿石油美元的能力,会推出哪些发展?

不幸的是,这些机会永远关闭了。

自然,鉴于 ITMiVT 与曼彻斯特大学(自 1960 年代初并致力于 BESM-6)有着良好的联系,并且与坚定的ICL,列别杰夫非常想与之结盟。 然而,Burroughs 是标签描述符机器的唯一商业实现。

关于 Burtsev 使用这台机器的工作可以说些什么?

Burroughs 在俄罗斯的不可思议的冒险


苏联计算机是一个非常封闭的领域,对于许多机器来说,没有照片,没有合理的描述(例如,关于 Kitovskaya M-100 的架构,直到现在还没有真正知道),而且通常每一步都有惊喜等待着(比如在 2010 年代计算机“伏尔加河”中的发现,雷维奇、马利诺夫斯基和马拉舍维奇甚至都没有怀疑过它的存在,他们接受了数十次采访,并以此为基础撰写了书籍)。

但在一个特定区域,甚至比军用车辆中也有更多的沉默和秘密。 这些是对在联盟工作的美国计算机的引用。

这个话题太不喜欢提出来了,以至于人们可能会产生这样的印象,即除了杜布纳著名的 CDC 6500 之外,苏联作为一个阶级根本没有美国计算机。

甚至关于 CYBER 170 和 172 的信息也必须一点一点地挖掘出来(苏联科学院和其他一些国家有 HP 3000!),但联盟中存在真实的 Burroughs 被认为是很多都是神话。

没有一个俄语资源、采访、论坛、书籍甚至包含专门针对这些机器在苏联的命运的一行。 然而,与往常一样,我们的西方朋友比我们自己更了解我们。

经过仔细搜索,确定 Burroughs 在社交街区深受喜爱,并被大力使用,尽管这里的国内资源在他们的嘴里有水。

幸运的是,在美国有足够多的这种架构的粉丝,他们对它了如指掌,包括每个型号的大型机的全部安装数量,甚至是序列号。 他们将这些信息汇总在一张表格中,并慷慨分享,该文件还包括每批 Burroughs 计算机运往华沙条约国家的信息来源。

那么,让我们看看《冷战时期的经济治国之道:欧洲对美国贸易禁运的反应》一书,它向我们揭示了苏联采购的秘密。

早在 1969 年 5500 月,一个政府跨部门工作人员学习小组……此时美国计算机公司开始在东欧销售。 底特律的 Burroughs 公司在捷克斯洛伐克安装了四台大型 BXNUMX 计算机,在莫斯科安装了一台,相当于 IBM 的中档计算机。 苏联程序员和维护人员在底特律工厂接受了培训。

哦,到了 1969 年,Burroughs B5500 不仅安装在莫斯科,而且苏联专家还设法在公司位于底特律的工厂实习!

另外 4 辆汽车根据政府命令卖给了捷克斯洛伐克,不幸的是,不知道它们安装在哪里以及它们做了​​什么,但显然不是在大学,表中的“用户”列表示“政府”。 最强大的 B6700(后来升级到 B7700!)在东德出售并在卡尔斯鲁厄大学使用。

进一步试图澄清有关向莫斯科交付的信息,我们不得不联系西南工程、通信和计算博物馆(美国亚利桑那州)。

在他们的网站上,您可以找到 ACM 计算机体系结构新闻的 Alistair Mayer 1982 年文章的脚注(Alastair JW Mayer,The Architecture of the Burroughs B5000 – 20 Years later and Still Ahead of the Times),来自工程师 Rea Williams 的一封信) 来自 Burroughs Corporation 安装和支持团队:

很久以前,我不记得确切的年份,大约在 1973 年……Burroughs 向俄罗斯石油部出售了一架 B6500(B6700)。 这是一个非常特殊的系统,带有西里尔文打印机、特殊的纸带阅读器和其他一些非常特殊的东西。 这是在冷战期间,但我们(Burroughs)获得了提供该系统的一些特殊许可。 我参加了工业城工厂的“骑车”系统。 Glen 曾在我们的 TIO 组织工作,并前往俄罗斯帮助安装和培训当地人员进行维护。 他讲述了 GRU 或任何不信任他们的纸牌游戏的人的故事,因为他们认为 Burroughs 的人在“合作”或其他什么,他们不得不让他们的房间门敞开。 伟大的故事,希望我能记住它们。 所以,最后他给了我别针。 我还有一些其他的东西,我稍后也会告诉你。

顺便说一句,为了纪念这样的事件,苏联人发行了带有 Burroughs 标志和题词“Barrows”的纪念徽章,并将它们分发给了项目参与者。 威廉姆斯的原始徽章装饰了本文的标题。

因此,苏联石油工业(通常与围绕我们的军事和科学计算机发生的所有无法无天的情况平行),非常有影响力,富有并且无限远离学院和党的所有摊牌,不想满足于家用电脑(绝对不想要那里的东西,从苏联研究机构的某个人那里订购并等到经过十年的对决,它们都失败了),冷静地接受了它,并为自己买了最好的——一台优秀的 B6700。 他们甚至从公司内部召集了一个安装团队,让这台珍贵的机器正常工作。

毫不奇怪,这一集清楚地表明了真正认真的人(让我们不要忘记石油工人为国家带来了大部分钱,然后军队和学者将这些钱花在了他们的游戏上)对待国产汽车,他们试图忘记更强。


塔斯马尼亚大学的 Burroughs B6700 和 Burroughs 大型系统系列的最新产品 - 伟大的 B7900 (http://www.retrocomputingtasmania.com, https://pretty-little-fools.tumblr.com)

我们注意到两个有趣的事实。

首先,尽管每个人都知道 Burroughs 主要是因为他们为美联储提供大型机(作为安全架构的黄金标准),但他们也有军事订单(尽管比 IBM 和 Sperry 少得多,在第二次世界大战期间战争他们未能与政府建立联系)。

此外,他们的汽车非常非常喜欢大学。 你甚至可以说——全世界都喜欢它:在英国、法国、德国、日本、加拿大、澳大利亚、芬兰甚至新西兰,安装了一百多台不同生产线的 Burroughs 大型机。 Burroughs 在架构上(和风格上)是大型计算机的苹果。

他们的机器坚固耐用,非常可靠,价格昂贵,功能强大,作为一个包含所有预安装和配置的软件和软件包的绝对套件提供,该架构是封闭的,与市场上的任何产品都不同。

它们受到各行各业的知识分子的喜爱,因为 Burroughs(就像黄金时代的 Macintosh 一样)即插即用。 以当年大型机的标准来看,即使与 S/360 一样成功,它也非常酷。

而且,当然,它们在设计、品牌便利终端、原始光盘加载系统和许多其他方面都不同。 我们还注意到,在它的年代,虽然不是超级计算机,但它是一台强大的工作机器,产生了大约 2 MFLOPS - 比苏联当时拥有的任何东西都要强大几倍。

总的来说,大学当之无愧地喜欢它们,因此在联盟中使用 Burroughs 作为科学超级计算机将是一个完全合理的决定。 另一个好处是对 Algol 的硬件支持,这种语言首先被认为是高等教育的黄金标准(尤其是在欧洲),其次在任何其他架构上都极其缓慢。

Algol(其完全支持并没有出现在纯国产机器中)当之无愧地被认为是经典学术结构化编程的标准。 没有像 PL / I 这样的深奥结构过载,不像纯 C 那样无政府主义,比 Fortran 方便很多倍,比 LISP 和(上帝保佑)Prolog 更不费神。

在 OOP 概念出现之前,没有什么比这更完美、更方便的了,只有 Burroughs 是唯一没有放慢速度的机器。

另一个事实值得高度关注。

KoCom 断然不允许我们购买先进的架构,甚至 1980 年代对强大工作站的限制在苏联解体后才解除,我们不得不为 CDC 进行激烈的斗争,CYBER 被卖掉了(正如我们已经提到的,控制数据的主管已经在接受国会关于反美活动的调查),并且安装了几台机器,其目标是为了美国的利益。

来自水文气象中心的 CYBER 向我们提供有关北极气候数据的帮助,而 CYBER LIAN 则作为交换承诺共同开发递归计算机。

结果,顺便说一句,他们被白卖了,联合工作没有成功。

这个想法的真正作者托尔加绍夫很快就被他的老板推下地狱,因为与洋基队一起工作的名声和金钱若隐若现。 美国人来了,试图从老板那里得到一些发展的手势,他们很难想象普通机器是如何工作的,最终吐了所有东西然后离开了。

于是苏联又失去了进入世界市场的机会。

但是新鲜的 Burroughs 没有眨眼就送到我们这里,CoCom 和国会都没有反对,没有抱怨。 再次,这只能由大企业的利益来证明。

他们把它卖给了石油商,并保证他们显然不会放弃对军队的魅力,他们自己需要它,但与苏联石油工业成为朋友对双方都非常有利。

我们还注意到,正如我们在之前的文章中所写,他们只是在勃列日涅夫年代开始向我们出售 Burroughs,当时冷战的强度显着降低。 与此同时,狡猾的洋基队并不急于用纯军事技术(例如最强大的 CDC 6600 或 Cray-1)来吸引对手,但他们并不介意支持苏联的业务。

然而,1993 年出版的亚利桑那大学苏联先进技术的 Peter Wolcott 的工商管理博士学位论文:高性能计算案例指出,B6700 于 1977 年安装在莫斯科(即所有批准和交付总共花了 4 年时间!)。

Elbrus 的大部分初步设计工作是在 1970 年到 1973 年间完成的,当时 Burtsev 只能在美国看到一辆有生命的汽车(不幸的是,没有确切的信息他去那里的时间)。

此时,ITMiVT 工程师只能访问 B6700 的一般文档——机器的指令架构和框图。 Wolcott 写道,他们在 1975-1976 年间收到了更详细的信息(显然是在 Burtsev 的旅行之后,他带来了一堆论文),这导致了 Elbrus 结构的一些改进和变化。

最后,在 1977 年,开发人员详细研究了莫斯科 Burroughs,这导致了另一波升级浪潮,可能与此有关,包括对已经投入生产的文件进行持续更改的过程。

正因为如此,我们可以保证灵感来自 Burtsev,显然是受到了英国人的影响,他在 1960 年代中期可以熟悉英国人的作品。 是的,在那些日子里,标记-描述符机器的方向确实被认为是“理论上最强大的”,也就是说,它被英国几乎整个学术计算机科学所支持,被认为是最有前途的。

在这方面,关于厄尔布鲁士的工作符合当时最先进的研究,而 1980 年代中期世界转向完全不同的方向并不是英国学者的错。

我们还注意到,根据理论文章,Burtsev 团队没有成功制造汽车,只有熟悉现场 Burroughs 的文档才能让他们完全弄清楚这件事是如何工作的。

架构比较


Burroughs Large Systems Group 的整个产品线都建立在一个 B5000 架构上。 机器的名称非常奢侈。 最后三位数字表示机器的代号,第一个数字表示该代的功率序列号。

因此,我们有可用的 000 系列(唯一的代表是 B5000 的祖先),然后没有使用从 100 到 400 的数字(它们去了中型系统和小型系统),下一个系列获得了 500 索引。它有三台计算机,按功率划分 - 更简单 (B5500)、更复杂 (B6500) 和理论上最强大的 (B8500)。

然而,B6500 已经停滞不前,因此该系列被卡在了更年轻的型号上。 下一个数字 600 也退出了(以免与 CDC 混淆),因此出现了 B5700、B6700 和 B7700 线。

它们在内存量、处理器数量和其他架构上的非主要细节方面有所不同。 最后,最后一行是两个型号(B800 和 B6800)的第 7800 个系列和三个(B900、B5900 和 B6900)中的第 7900 个。

为大型系统编写的所有代码都是开箱即用的可重入代码,系统程序员不必为此付出任何额外的努力。 简单地说,程序员只是简单地写了代码,根本没想到它可以在多用户模式下工作,系统控制了它。

没有汇编程序,系统语言是 ALGOL 的超集 - ESPOL 语言(面向执行系统问题的语言),其中编写了 OS 内核(MCP,主控制程序)和所有系统软件。

它被 700 系列中更先进的 NEWP(新执行程序设计语言)所取代。 为高效处理数据开发了另外两个扩展 - DCALGOL(数据通信 ALGOL)和 DMALGOL(数据管理 ALGOL),并且出现了单独的命令行语言 WFL(工作流语言)以实现高效的 MCP 管理。

Burroughs COBOL 和 Burroughs FORTRAN 编译器也是用 ALGOL 编写的,并经过仔细优化以考虑到架构的所有细微差别,因此这些语言的大型系统版本是市场上最快的。

大型 Burroughs 机器的位深度通常为 48 位(+3 个标记位)。 程序由特殊实体组成 - 8 位音节,可以是对名称、值或构成运算符的调用,其长度从 1 到 12 个音节不等(这是 500 系列的一项重大创新,经典 B5000 使用长度为 12 位的固定指令)。

ESPOL 语言本身只有不到 200 条语句,所有这些语句都适合 8 位音节(包括强大的行编辑运算符等,没有它们只有 120 条指令)。 如果我们去掉为操作系统保留的操作符,如 MVST 和 HALT,用户级程序员常用的集合将小于 100。一些操作符(如名称调用和值调用)可以包含显式地址对,其他使用高级分支堆栈。

Burroughs 没有可供程序员使用的寄存器(对于机器来说,栈顶和下一个被解释为一对寄存器),分别不需要操作员使用它们,以及各种后缀/前缀也不需要指示在寄存器之间执行操作的选项,因为所有操作都应用于堆栈顶部。 这使得代码非常密集和紧凑。 许多运算符是多态的,并根据标签定义的数据类型改变他们的工作。

例如,在大型系统指令集中,只有一条 ADD 语句。 一个典型的现代汇编程序包含用于每种数据类型的多个加法运算符,例如用于整数、浮点数、双精度和长整数的 add.i、add.f、add.d、add.l。 在 Burroughs 中,架构仅区分单精度数和双精度数 - 整数只是指数为零的实数。 如果一个或两个操作数都有标签 2,则执行双精度加法,否则标签 0 表示单精度。 这意味着代码和数据永远不会不兼容。

在 Burroughs 中使用堆栈实现得非常漂亮,我们不会让读者厌烦细节,相信我们的话。

我们只注意到算术运算占用了一个音节,堆栈操作(NAMC 和VALC)占用了两个音节,静态分支(BRUN、BRFL 和 BRTR)占用了三个音节,而长文本(例如 LT48)占用了五个。 结果,代码比现代 RISC 架构更密集(更准确地说,它有更多的熵)。 增加密度会减少指令高速缓存未命中,从而提高性能。

从系统架构来看,我们注意到 SMP——对称多处理器,最多 4 个处理器(这是在 500 系列中,从 800 系列开始,SMP 已被 NUMA - Non-uniform memory access 取代)。

Burroughs 通常是使用通过高速总线连接的多个处理器的先驱。 B7000 系列最多可以有 8500 个处理器,前提是其中至少有一个是 I/O 模块。 B16 应该有 XNUMX 个,但最终被取消了。

与 Seymour Cray(以及 Lebedev 和 Melnikov)不同,Burroughs 的工程师提出了大规模并行架构的想法——将许多相对较弱的并行处理器与一个公共内存连接起来,而不是使用一个超级强大的向量。

如图所示 故事 这种方法最终成为最好的。

此外,Large Systems 是市场上第一台堆栈机器,他们的想法后来形成了 Forth 语言和 HP 3000 计算机的基础。 saguaro 堆栈(这是一个仙人掌,所以他们称之为带有分支的堆栈)。 所有数据都存储在堆栈上,除了数组(可能包括字符串和对象),页面在虚拟内存中为它们分配(该技术的第一个商业实现,在 S / 360 之前)。

大型系统架构的另一个众所周知的方面是标签的使用。 这个概念最初出现在 B5000 中是为了增加安全性(标签只是将代码和数据分开,就像现代的 NX 位),从第 500 系列开始,标签的作用显着扩大。 为它们分配了 3 位而不是 1,因此总共有 8 个标签选项可用。 其中一些是:SCW(软件控制字)、RCW(返回控制字)、PCW(程序控制字)等。 这个想法的美妙之处在于第 48 位是只读的,因此奇数标签表示用户无法更改的控制字。

堆栈非常好,但是如何处理由于其结构而无法放入其中的对象,例如字符串? 毕竟,我们需要硬件支持来处理数组。

很简单,大型系统为此使用描述符。 描述符,顾名思义,描述结构的存储区域,以及 I/O 请求和结果。 每个描述符包含一个字段,指示其类型、地址、长度以及数据是否存储在存储中。 自然,它们都标有自己的标签。 Burroughs 描述符的架构也很有趣,但这里我们不赘述,我们只注意到虚拟内存是通过它们实现的。

Burroughs 与大多数其他架构的不同之处在于它们使用分页虚拟内存,这意味着页面以固定大小的块被分页,而不管其中信息的结构如何。 B5000 虚拟内存使用描述符描述的不同大小的段。

在 ALGOL 中,数组边界是完全动态的(从这个意义上说,Pascal 及其静态数组更加原始,尽管这在 Burroughs Pascal 版本中是固定的!),在大型系统中,数组在声明时不是手动分配的, 但在访问时自动。

这样就不再需要像 C 中传说中的 malloc 那样的低级内存分配系统调用了,这样就免去了 C 名闻遐迩的一大堆千篇一律的脚注,节省了系统程序员来自一堆复杂而沉闷的例行公事。 事实上,大型系统是支持 JAVA 垃圾收集的机器,而且在硬件上!

具有讽刺意味的是,许多 Burroughs 的用户在 1970 年代和 1980 年代切换到它并从 C 语言移植了他们的(似乎是正确的!)程序,发现其中有很多与缓冲区溢出有关的错误。

描述符长度的物理限制问题,不允许直接寻址超过 1 MB 的内存,在 1970 年代后期随着 ASD(高级段描述符)机制的出现得到了优雅的解决,这使得可以分配 TB 的 RAM(在个人计算机中,这仅出现在 2000 年代中期 - X)。

另外,所谓的。 p 位中断,意味着已经分配了一块虚拟内存,可以在 Burroughs 中用于性能分析。 例如,通过这种方式,您可以注意到分配数组的过程不断被调用。 访问虚拟内存会大大降低性能,这就是为什么如果您插入另一个 RAM 芯片,现代计算机会开始更快地工作。

在 Burroughs 机器中,分析 p 位中断使我们能够发现软件中的系统性问题并更好地平衡负载,这对于全年 24x7 运行的大型机很重要。 在大型机器的情况下,即使每天节省几分钟的时间,最终也能很好地提高生产力。

最后,标签,就像标签一样,负责显着提高代码安全性。 黑客必须破坏现代操作系统的最佳工具之一是经典的缓冲区溢出。 尤其是 C 语言,它使用最原始且最容易出错的方式来标记行尾,在数据流本身中使用空字节作为行尾信号器(通常,这种不流畅会区分许多创建的东西) ,有人可能会说,在学术风格上,即聪明的人,但是在发展领域没有特殊资格)。

在 Burroughs 中,指针被实现为 inode。 在索引期间,硬件会在每次递增/递减时检查它们以避免块边界溢出。 在任何读取或复制期间,源块和目标块都由只读描述符控制,以保持数据完整性。

结果,原则上不可能进行重要类别的攻击,并且即使在编译阶段也可以捕获软件中的许多错误。

难怪 Burroughs 如此受大学的喜爱。 在 1960 年代至 1980 年代,合格的程序员通常在大公司工作,科学家们为自己编写软件,因此,大型系统使他们的工作变得非常容易,因此不可能从根本上搞砸任何程序。

Burroughs 影响了许多技术。

正如我们所说,HP 3000 系列,以及他们今天仍在使用的传奇计算器,都受到了大型系统堆栈的启发。 Tandem Computers的容错服务器也承载了这一工程杰作的烙印。 除了 Forth,Burroughs 的思想对所有 OOP 之父 Smalltalk 产生了重大影响,当然还有 JAVA 虚拟机的体系结构。

这么大的机器为什么会消亡?

嗯,首先,它们并没有立即消亡,经典的真正 Burroughs 标签描述符架构在 UNISYS 大型机系列中一直持续到 2010 年,然后才输给平庸的英特尔至强服务器(即使是 IBM 也很难与之竞争) )。 排量的发生有一个平庸的原因,它杀死了 1980 年代所有其他异国情调的汽车。

在 1990 年代,像 DEC Alpha 和 Intel Pentium Pro 这样的通用处理器被提升到如此惊人的性能,以至于许多复杂的架构技巧变得不必要了。 一对 1000 MHz SuperSPARC-II 上的 SPARCserver-90E 像神龟一样击败了所有选项的 Elbrus。

Burroughs 倒闭的第二个原因是在 1980 年代几乎扼杀了苹果的同样问题,大型机业务的规模加剧了这一问题。 他们的机器非常复杂,以至于开发起来非常昂贵且耗时,因此在整个 1970 年代,他们基本上只对相同架构进行了略微改进的版本。 当 Burroughs 试图转移到其他地方(如 B6500 或 B8500 的情况)时,该项目开始下滑,以黑洞的速度吸收资金,最终被取消(如失败的 Apple III 和 Lisa) .

大型机规模意味着 Burroughs 以数百万美元的价格出售计算机,而且维护成本高得离谱。 例如,B8500 本来应该有 16 个处理器,但即使有 14 个处理器,一个配置的估计成本也超过 XNUMX 万美元,因此终止了其供应合同。

除了机器本身的惊人成本外,该公司的旧大型机还需要大量资金来支持。 所有软件的维护、服务和所有许可证的年度套餐,以高端 B7800 型号为例,每年花费约 1 万美元,不是每个人都能负担得起这样的奢侈品!

我想知道苏联的石油工人是买了全套服务,还是他们自己修理了他们的 Burroughs,用了一个强有力的词和一个大锤?

因此,Burroughs 的业务一直一瘸一拐,缺乏 IBM 的规模和实力。 由于开发的复杂性,他们无法制造廉价汽车,而昂贵汽车的购买者由于与竞争对手的积极竞争,不足以增加利润和增加投资开发和降低价格的机会,从而使汽车更具竞争力。

Sperry UNIVAC 也遇到了同样的问题,最终在 1986 年两家公司合并成立了 UNISYS,此后一直生产大型机。

除了上面提到的架构之外,Burtsev 在硬件错误控制方面确实借鉴了 5E26 和 5E92b 的经验。 这两台计算机都能够进行硬件检测和纠正任何一位错误,而在 Elbrus 项目中,这一原理被提升到了新的高度。

所以,我们正在等待最令人着迷的问题的答案——厄尔布鲁士埃尔伯罗斯?

我们记得,Ailif 放弃了经典的冯诺依曼模型,将机器作为指令和数据的线性存储。 Burroughs 的 saguaro 堆栈是一个树形结构,反映了多用户多道程序环境中并行代码的执行和进程的层次结构。 顺便提一下,ALGOL 具有块层次结构,非常适合堆栈,这就是它在大型系统中的实施如此成功的原因。

Elbrus 系统架构师不遗余力地推动了这种集成设计理念,并将其提升到了一个新的水平。 特别是,来自 ITMiVT 的一组开发人员创建了一个通用的、类似 Algol 的 El-76,而不是几种专门的语言。

建筑新奇并没有就此结束。

下表给出了机器的直接对比,旧的B6700在一台年轻17岁的电脑的背景下整体看起来不错。


有趣的是 - 与 B6700 不同,Elbrus 非常巨大。

第一个版本占地 300 平方米。 米在单处理器和 1 平方米。 m 在 270 处理器配置中,第二个 - 分别为 10 和令人难以置信的 420 平方米。 m,从而从 IBM AN / FSQ-2 Project SAGE 本身中夺走了历史上最大计算机的桂冠,该项目作为一盏灯,占地 260 平方米。 米。


了解规模。 温布利球场。 用于 A-135 导弹防御系统的 Elbrus 多机综合体大约占用了这么多空间。

两台机器的 CPU 均基于具有反向波兰表示法的 CISC 堆栈架构。 编译程序的代码由一组段组成。 段通常对应于程序中的一个过程或块。 当程序开始执行时,会分配两个内存位置:一个用于堆栈,另一个用于段字典,用于引用 RAM 中的多个程序段。 代码段和数组的内存区域由操作系统按需分配。

两台机器中的描述符通过组织执行线程之间的自动内存共享来负责代码重入。 代码和数据由标签严格分隔,描述符允许您为不同的用户在不同的数据集上运行相同的代码,并保证它们的保护。

两台计算机甚至使用相同的专用寄存器(例如,每台机器都有栈底、栈限制和栈顶寄存器)和栈管理指令。

Burroughs 和 Elbrus 的理念非常相似,但处理器本身的设计却大不相同。

B6700处理器由一个48位加法器、一个地址处理单元、七个功能控制器(程序、算术、字符串、堆栈调整、中断、传输和内存)和一组寄存器组成。 后者包括 4 个 51 位数据寄存器(两个栈顶元素,当前值、中间值)和 48 个 20 位指令寄存器(32 个显示寄存器,负责存储当前执行过程的入口点,每个基址寄存器 8 个)。和索引寄存器)。

处理器中最有趣的是一个非常棘手的块,即所谓的。 一系列操作的控制器(数量为 10 个),它们从可用的功能块中为每个命令构建了一个计算管道。 这可以显着降低晶体管的成本。

控制器将解码的指令传递到当前程序指令字寄存器并选择适当的操作员系列控制器。 关键特性是指令按照编译器指定的顺序严格按顺序执行。 算术指令不能重叠,因为 CPU 中只有一个加法器。

这是 Elbrus 处理器之间的主要区别。 巴巴扬自豪地用拳头捶胸,宣称“厄尔布鲁士岛的世界上第一个超标量”(这与他的开发完全无关),但在实践中,Burtsev 仔细研究了伟大的 CDC 6600 的架构,以便学习平行输送机中功能块组之间交互的秘密。

Elbrus从CDC 6600中借用了多个功能块(共10个)的架构:加法器、乘法器、除法器、逻辑块、BCD编码转换块、操作数调用块、操作数写入块、字符串处理块、子程序执行块和索引堵塞。

这些模块与 B6700 控制器之间存在一些功能重叠,但也存在重要差异,例如,Elbrus 中的算术具有 4 个独立组而不是 XNUMX 个。

多个 ALU 已经在其他机器上使用过,但从未在世界上使用过——在堆栈处理器上。 当然,这不是因为西方开发商的愚蠢行为。 根据定义,堆栈假定零寻址 - 所有必要的操作数必须位于顶部。 显然,在没有传统地址的情况下,每个周期只有一次操作可以正确寻址到顶部——这基本上排除了并行块的操作。

Burtsev 的团队为了绕过这个限制,不得不极其变态。

事实上,Elbrus 版本中的 B6700 堆栈处理器已经完全不再是堆栈处理器了! 奇迹不会发生,刺猬不会与蛇杂交,因此程序员看不到的内部架构必须是经典的寄存器架构。 控制器像往常一样接收和解码命令,然后将其转换为内部寄存器格式。 B6700 仅将堆栈的 2 个顶部元素解释为内部寄存器,Elbrus - 32 个元素! 实际上,堆栈中只剩下一个名称。


Elbrus 伪堆栈在过渡到过程 Q 时的状态。来自 Burtsev 的文章“构建多处理器计算系统 Elbrus 的原理”。

当然,如果 CU 不能并行加载所有功能设备,这将完全没有用。 这就是投机执行机制的开发方式,这也是绝对原创的。

Elbrus 指令可以在所有必需的操作数可用之前传递给功能块,一旦加载,它们将只是等待数据。 实际上,执行是根据数据流架构的原理发生的,确切的执行顺序取决于操作数可用的顺序。

他们最终取得了什么成就?

好吧,现代程序员对这种疯狂决定的反应是显而易见的:

我记得使用数组杀死了我。 切换到主管模式以分配数组 - 这正常吗? 执行管道了解数组是否正常? 通过描述符处理数组 - 有效吗? 类型越界检查起来会更快,对吧? 很难想象这种恐怖将如何落在设备上。 但是,当时的布局与内存和其他组件的延迟和速度有所不同,与现在完全不同。 她可以证明这样大胆的举动是合理的,但这样的设计无论如何都行不通。 事实上,他们并没有活下来……
从理论上讲,纯标签机的开发者是从 1970 年代中期仍然没有能够至少进行一些自动代码并行化的架构和编译器的事实开始的,因此大多数多处理器系统无法有效加载完全,执行单元经常处于空闲状态。 摆脱这种僵局的方法是超标量架构或臭名昭著的 VLIW 机器,但它们仍然相距甚远(尽管 6600 年 CDC1965 中的同一个 Cray 使用了第一个超标量处理器,但这里还没有量产的味道)。 因此,这个想法的诞生是为了通过将架构转换为 Java 语言来促进程序员的工作。 然而,值得注意的是,在堆栈架构上制作一个好的超标量并不容易——为 RISC 指令系统制作要容易得多。 让我们看看 Elbrus-2 中是什么样的超标量:“控制设备中的命令处理速率可以从 1 个周期的两个命令到 3 个周期的一个命令不等。 最常见的命令组合以最大速率处理:读取值和算术命令; 加载地址并取数组元素; 下载地址并写下来。”
结果,我们拥有了我们所拥有的 - 每个周期两条指令的超标量,以及最原始的指令。 这里没有什么值得骄傲的,至少他们可以将数据读取叠加在算术上(甚至当它进入缓存时)。

原则上,苏联在这个意义上打败了自己,正如已经提到的,Burroughs 机器并没有没有这样的装饰,不是因为他们的建筑师的愚蠢。 他们想做一个纯粹的堆栈架构,而且他们做得对。

在 Elbrus 中,堆栈的优雅简洁保留了一个名称,而机器变得更加昂贵和复杂了一个数量级(调试 Elbrus 处理器是什么鬼,这样做的人稍后会告诉我们),但是在性能上它仍然没有真正获胜 - 收到了两类机器的缺点。

一般来说,这种情况最好照原样窃取想法,而不是试图将其苏联化,即扩大和深化它。

数组有什么用?

Burtsev 也在这里投入了 5 戈比。

在 Burroughs B6700 中,所有数组元素都是通过数组描述符索引来间接访问的。 这需要一个额外的周期。 在 Elbrus,他们决定取消这个循环并添加一个硬件块,用于将数组元素预取到本地缓存中。 索引块包含关联内存,它将当前元素的地址与内存中的步骤一起存储。

结果,只需要把手拉出数组的第一个元素; 可以直接联系其他所有人。 相联存储器可以存储六个数组的信息,计算一个循环中一个元素的地址只需要一个周期,甚至可以提前提取循环5次迭代的数组元素。

通过这项创新,与作为纯标量机器构建的 B6700 相比,开发人员在 Elbrus 中实现了矢量运算的显着加速。

内存架构也发生了重大变化。

B6700 没有缓存,只有一组本地专用寄存器。 在 Elbrus 中,缓存由四个独立的部分组成:一个指令缓冲区(512 个字)用于存储程序执行的指令,一个堆栈缓冲区(256 个字)用于存储堆栈的最活跃(最顶部)部分,否则将存储在主存储器中; 数组缓冲区(256 字),用于存储循环处理的数组元素; 用于全局数据(1 字)的关联存储器,用于存储在其他缓冲区中的数据以外的数据。 这包括不适合堆栈缓冲区的程序全局变量、句柄和过程本地数据。

这种缓存组织使得在共享内存配置中有效地包含相对大量的处理器成为可能。

将高速缓存拧到多处理器系统有什么问题?

事实上,每个处理器都可以拥有自己的本地数据副本,但如果我们想强制处理器并行处理一个任务,那么我们必须确保缓存的内容相同。

这种检查称为保持缓存一致性,需要大量的 RAM 访问,这会极大地降低系统速度并扼杀整个想法。 这就是为什么 SMP 架构中的处理器数量 - 对称多处理器,很少超过 4 个(即使现在 4 是服务器主板中经典的最大插槽数)。

IBM 3033 (1978) 双处理器大型机使用了一种简单的直通式设计,其中高速缓存中更改的数据会立即在 RAM 中更新。

IBM 3084(1982 年,4 个处理器)使用更高级的一致性方案,其中数据传输到 RAM 可以延迟到缓存条目被覆盖或直到另一个处理器访问主存储器中的相应数据条目。

这就是为什么 3 处理器 B6700 没有缓存的原因——它的处理器已经太花哨了。

Elbrus 中的缓存一致性是通过使用程序中的关键部分的概念来维护的,这对于操作系统架构师来说是众所周知的。 访问由多个处理器共享的资源(数据、文件、外围设备)的部分程序在访问时设置了一个特殊的信号量,这意味着进入临界区,之后该资源被所有其他处理器阻塞。 离开后,资源再次解锁。

鉴于关键部分(至少根据开发人员的说法)占平均程序的 1% 左右,99% 的时间缓存共享不会产生维护一致性的开销。 根据定义,指令缓冲区中的指令是静态的,因此它们在多个高速缓存中的副本保持相同。 这也是 Elbrus 支持多达 10 个处理器的原因之一。

总的来说,它的架构是非常早期使用分段缓存的一个例子,类似的原理(堆栈缓冲区、指令缓冲区和关联内存缓冲区)已经在 B7700 中实现,但它在 1976 年问世,当时大部分创建 Elbrus 架构的工作已经完成。

因此,Elbrus 理所当然地获得了世界上第一个由 10 个处理器共享内存的通用系统之一的称号。

技术上(考虑到 Elbrus-2 直到 1989 年才正常工作),第一台发布的此类超级计算机是配备 8000 个 National Semiconductor NS12 处理器的 Sequent Balance 32032(1984 年;配备 1986 个处理器的 Balance 21000 版本于 30 年发布) ),但这个想法本身肯定早在十年前就传到了 Burtsev 小组。

Elbrus 记忆模型非常有效。

例如,在 S / 360 的情况下,以添加多个数字的方式执行一个简单的程序需要重新分配,从 620 内存访问(如果用 ALGOL 编写)到 46(如果用汇编程序编写),396 和 54 在BESM-6 的情况,“厄尔布鲁士”中只有 23 个。

像 Burroughs 机器一样,Elbrus 使用标签,但它们的用途已经扩大了很多倍。

Burtsev 的团队热衷于将尽可能多的控制权转移到硬件上,将标签长度加倍至 6 位。 结果,机器能够区分半精度/单精度/双精度操作数,整数/实数,空/全字,标签(包括诸如“没有外部中断块的特权标签”和“没有地址信息的标签”之类的特殊事物记录器”)、信号量、控制字等。

创建标签的主要目标之一是简化编程。 如果功能块可以区分实数和整数操作数,则它们可以设计为适应任何一个上的计算,并且不需要单独的标量块和实数块。

事实上,Elbrus 在硬件上实现了可与现代 OOP 相媲美的动态类型。

标签的另一个目的是检测错误,例如尝试对指令执行算术运算,标签还可用于保护内存、限制某些数据的写入等。

在标签领域,Elbrus 将基础机器和 B6700 的理念提升到了一个新的复杂水平。

所有这一切都使得 Burroughs 建筑师没有达到的目标成为可能。 我们记得,他们需要单独的 ALGOL 扩展来编写操作系统代码和后续的系统管理。 “Elbrus”的开发者放弃了这个想法,并创建了一个完整的通用语言“El-76”,所有东西都可以在其中编写。

用高级语言编写整个操作系统(包括负责最低级内部事物的代码,例如内存分配和进程切换),需要非常高级的特殊硬件。 例如,Elbrus OS 中的进程切换被实现为一系列赋值运算符,它们在特殊硬件寄存器上执行明确定义的操作。

尽管 Elbrus(尤其是第二版)包含更多内存,但两台机器的 RAM 设计非常相似。

RAM“Elbrus”是分层组织的,内存部分(1 个机柜)由 4 个模块组成,每个模块由 32 个 16 个字的块组成。 可以在多个级别进行交替:部分之间、部分内的模块之间以及单个模块内。 在一个周期内,每个内存模块最多可以读取四个字。 最大内存带宽为 450 MB/s,尽管每个处理器的最大数据传输速率为 180 MB/s。

B6700 和 Elbrus 中的内存管理方案通常非常相似。 内存被组织成可变长度段,这些段代表编译器定义的程序的逻辑部分。 根据程序的逻辑划分,段可以有不同的保护级别,并且可以在进程之间共享。

在 B6700 中,段作为一个整体在主存储和虚拟存储之间移动。 数组是个例外。 它们可以以每组 256 个字为一组存储在主存储器中,两侧以链接字为界。

在 Elbrus 中,代码段的处理方式与数据段和数组不同。 代码的处理方式与 B6700 相同,数据和数组被组织成每页 512 个字的页面。

Elbrus 方法在这里更有效,并且允许更快的交换。

此外,Elbrus 使用更现代的虚拟内存类型。

在 Burroughs 计算机中,寻址被限制为 20 位或 220 个字,这是 B6700/7700 中的最大物理内存。 主内存中段的存在由其描述符中的一个特殊位指示,该位在进程执行期间保留在 RAM 中。 没有大于物理内存总量的真正虚拟内存空间的概念; 描述符只包含物理地址。

Elbrus 机器对程序段使用类似的 20 位寻址方案,但对数据段和常量数组使用 32 位寻址。 这提供了 232 字节(4 GB)的虚拟内存空间。 这些段使用分页机制在虚拟和物理内存之间移动,该机制使用存储在分页内存关联块中的分页表在虚拟地址和物理地址之间进行转换。 虚拟地址由页号和页内的偏移量组成。 这实际上是一个成熟的现代虚拟内存实现,与 IBM 机器中的一样。

那么我们的判决是什么?

Elbrus 绝对不是 Burroughs B6700(甚至 B7700)的完整克隆。

而且,他甚至不是他的意识形态克隆,而是他的兄弟,因为 B6700 和 Elbrus 的灵感来自同一个来源——Ailif 在基础机器上的工作和曼彻斯特大学的工作,以及 B5000 的共同祖先-系列本身,著名的 B1 ,是赖斯汽车 R6600 所体现的理念的发展。 此外,Elbrus 使用 CDC 360 作为灵感(没有它的地方)并在使用虚拟内存方面 - IBM S / 81 型号 XNUMX。

在这方面,我们毫无疑问地承认,厄尔布鲁士的建筑本身绝对是 1970 年代世界发展的潮流,是当之无愧的代表。

此外,它在许多方面都比 B6700/7700 先进得多。

也许只有实现超标量的尝试才能被认为是一个真正不成功的决定,它在架构(如前所述的 2-3 次操作的超标量是不值得的)和实用(因此,一个复杂的处理器已经可怕地变得更加复杂,占据了一个巨大的T形机柜并且几乎无法调试,这就是为什么它被这么多年大惊小怪)的观点。

不幸的是,为了避开这样的时刻,一个人必须拥有丰富的经验和直觉,这些经验和直觉是在与世界上最好的建筑范例合作多年的基础上发展起来的,当然,这些范例并不在联盟中。


Burtsev 的文章“计算过程的并行性和超级计算机架构的发展”中的典型机柜“Elbrus-1”和 CPU“Elbrus-2”。 MVC“厄尔布鲁士”。

自然,不应该谈论 Elbrus 的任何独创性 - 事实上,它只是各种技术解决方案的汇编,在某些方面得到了显着改进。

但从这个角度来看,B5000 也是 R1 的高级版本,正如我们已经说过的。

现在,这种架构的相关性也毫无疑问 - 1970 年代早已一去不复返,IT 的历史已经转向完全不同的方向,并且已经持续了 40 年。

因此,在纸面上,按照 1970 年的标准,“厄尔布鲁士”无疑是一部杰作,与最好的西方汽车相当。 这是它的实现......

但是,这是下一篇文章的主题。

待续...
  • 阿列克谢·埃雷缅科(Alexey Eremenko)
  • https://www.sciencephoto.com, https://scholarship.rice.edu, https://www.researchgate.net, https://ethw.org, http://www.tavi.co.uk, http://www.computinghistory.org.uk, https://en.wikipedia.org, https://www.chiark.greenend.org.uk, http://www.retrocomputingtasmania.com, https://pretty-little-fools.tumblr.com
我们的新闻频道

订阅并了解最新新闻和当天最重要的事件。

26 评论
信息
亲爱的读者,您必须对出版物发表评论 授权.
  1. +1
    20 1月2022 20:58
    有趣!也许 Elbrus 1 和 2 的字长在当时是最长的。
  2. +2
    21 1月2022 01:15
    非常有趣的文章。
    优秀,简单的材料介绍,没有约束力,复杂的术语。
    垃圾邮件!
  3. ANB
    +1
    21 1月2022 03:09
    很棒的文章循环。
    然而,作者在某些方面感到困惑。
    而且信息已经过时了5年,比如Intel Xeon早就停产了。 这完成了风险架构。
    但是,最后,他承认厄尔布鲁士真的很酷。 他实际上变得很酷。 但是非常昂贵。
    1. +3
      21 1月2022 12:12
      英特尔至强已停产


      是的? 它是什么?

      https://www.intel.ru/content/www/ru/ru/products/details/processors/xeon/e/products.html

      哎呀,2021 Xeon 处理器...
    2. 0
      21 1月2022 21:24
      许多 Xeon 已停产,但当前正在发布,新的正在准备生产和开发。
      1. ANB
        0
        21 1月2022 21:59
        对不起,我把安腾搞混了。 他们走了。 Xeon 是常规的 misc x86 处理器。
        1. +1
          21 1月2022 22:03
          自 PPro/K86 时代以来的 x5 RISC 内部。
          1. ANB
            0
            22 1月2022 16:16
            从宏指令生成微指令仍在 s/360 中。
            1. 0
              22 1月2022 19:36
              例如,微编码机器早在 S / 360 之前就已经制造了——在 50 年代或更早的时候。 然而,那里的微码是不同的,而且通常是完全水平的——然而,垂直的微码是建立在相同的原理上的,带有一堆控制字段
  4. +2
    21 1月2022 13:27
    读起来很有趣。 机器的描述在多大程度上与事实相符,我不会承担判断,但演示文稿很好。 作者当然无法抗拒“踢”苏联的诱惑,但与周期的先前材料相比,相当多。 他承认,尽管有所保留,但 Elbrus 是一辆有价值的汽车。 也没想到...
  5. +1
    21 1月2022 15:40
    循环很棒! 感谢作者的工作 hi 对于像我这样的业余爱好者来说,它很容易阅读。
  6. 0
    21 1月2022 19:02
    有趣的。 但可能不是 Burroughs,而是 Burrows,就像在奖牌上一样。
    1. 0
      21 1月2022 23:19
      Quote:Falcon5555
      有趣的。 但可能不是 Burroughs,而是 Burrows,就像在奖牌上一样。

      建议将 IPA 上的作家 William Burroughs(也称为 Burroughs)的名字读作
      bʌroʊz 或 bɜroʊz,显然不能通过转录更接近地表示。 在这里你能区分“坏”和“坏”吗? )
      1. 0
        22 1月2022 00:01
        就像根据英语的一般规则。 必须关闭a,即您的首选。 是的,我马上想补充,但现在我要解释一下,最后我会发出更接近“z”而不是“s”的声音,就像在奖牌上一样。 这也符合您的第一个选项。
  7. 0
    21 1月2022 21:21
    > 2-3 次操作的超标量
    Load-op 和 LD/ST+AGU 根本不是超标量,它们最多是 CISC 元素。 这种“超标量”甚至在 8080 年也是如此。
  8. +1
    22 1月2022 01:42
    唉,很明显,这篇文章的“基础”已经很老了。
    很伤眼,比如这样的句子:....结果,1986年,两家公司为了生存,合并到UNISYS,仍然生产大型机...
    仍然?!
    UNISYS 早在 2015 年就停止发布其大型机,现在已经完全转向软件和服务(数据中心、集成等)。
    1. +3
      22 1月2022 11:27
      我同意,措辞不是最成功的,但在 UNISYS 本身中也有同样的文字游戏。 起初他们开发并支持原始架构,然后他们转向生产,事实上,普通至强服务器,继续称它们为大型机(自 1980 年代后期以来,非常强大的服务器和大型机之间的区别已普遍消除)以及各种“独一无二的blah blah集成解决方案等,然后他们干脆停止销售这些服务器,并开始将它们出租(实际上,回到使用大型机的传统历史模式,现在才称为“租用一台数据中心的机架”)。 这就是忒修斯之船的悖论——他们最终在什么时候与过去决裂? UNIVAC 和 Burroughs 是什么时候联合起来停止生产的? 他们什么时候切换到他们的微处理器架构,它简单地模拟了他们机器的所有功能? 他们什么时候从它转到锡安,并保留了仿真? 仿真何时停止? 他们什么时候停止销售他们的服务器,而是用它们填满数据中心并开始出租它们? 嗯,等等。 等等。 总的来说,有足够的点可以认为一切都死了,尽管公司还活着——除此之外,实际上只有 IBM 才能将计算机生产的历史从 XNUMX 世纪带到 XNUMX 世纪,所以在任何情况还不错。
  9. +1
    22 1月2022 17:07
    几十年来,每个人都在嘲笑技术的复制品——中国(很多人因为无知而笑)。 但我学得越多,我就越明白“我们是第一个”的口号只是关于盗窃苏联技术。 除了空间kmk。 借贷水平太棒了。 从圆珠笔、胶水到照相机、电脑、机床、汽车和飞机。 是的,而且副本更糟糕。
    1. +2
      23 1月2022 16:50
      不幸的是,使用被盗的东西还有很多不足之处。 对于复制和窃取机密的事实,没有什么不好说的,更不用说谴责前苏联或中国了,因为资本不是赚来的,尤其是开始,但它是生产出来的......如何? 这是一个完全没用的问题。 但这就是苏联开采的矿山的使用方式-它只会引起愤慨和下流……
    2. 0
      1 March 2022 14:13
      我只是不想评价这种胡说八道,这是一个自己只从事重写西方(或其他)资料的人说的(比如我是什么,他们在这里......)
      估计有人进来了。
      关于它是从哪里来的。 你知道是谁为美国人制造了核武器吗?
    3. 0
      26 August 2022 23:44
      在这里,您仍然不太正确。 在工程中,有一条绝对的规则“相似的问题会产生相似的解决方案”。
      也就是说,副本远不如“被盗原版”的事实只是说它是……不是副本! 这是一个完全独立的开发,可能使用设计(来自照片)甚至是一个想法 - 但在创建第一个样本之前已经经历了完整的研发路径 - 而不是徒劳地提到的原件的再创作(只是比较同一个欧盟的时间和质量 - 被“诚实地复制”,以及原始机器,只有在事后了解才能找到与外国产品的共同点。
  10. +1
    25 1月2022 16:44
    但我学得越多,我就越明白“我们是第一个”的口号只是关于盗窃苏联技术。

    苏联从未从事技术盗窃。 他像世界上所有其他国家一样完成了技术:
    - 我自己开发的;
    - 花钱买的;
    - 复制不完整的信息;
    - 像战争中的战利品一样结束,用鲜血付出;
    - 与他的盟友交换。
    所有其他州都做了同样的事情,美国排名第一。
    1. 0
      26 August 2022 23:48
      首先是意大利人——他们的米兰大教堂是科隆的仿造品(他们的剑,尤其是青铜锻造技术,几千年前就从比利牛斯山脉偷走了)。
      所以苏联远不是这里的第一个:)
  11. 0
    26 1月2022 13:20
    我真的很想读苏联和美国的军用计算机,可以这么说,比较一下。导弹防御和计算机的文章循环简直太棒了,我已经重读了三遍,可惜他们取消了为我的收藏复制文章的功能。非常感谢。
  12. 0
    25二月2022 15:55
    Quote:looker-on
    几十年来,每个人都在嘲笑技术的复制品——中国(很多人因为无知而笑)。 但我学得越多,我就越明白“我们是第一个”的口号只是关于盗窃苏联技术。 除了空间kmk。 借贷水平太棒了。 从圆珠笔、胶水到照相机、电脑、机床、汽车和飞机。 是的,而且副本更糟糕。

    但现在,我希望,我们有“我们自己的?”。 尤其是机床。
    现在西方和东方都在抄袭我们的一切? 毕竟已经30年了……

    至于汽车和飞机,没必要说谎。 这些飞机是我们自己的,就在 30 年前,你甚至没有参与这个项目,你也没有看到。 您是否甚至用头思考,使自己紧张,如何创建军工综合体并进行竞争-没有“自己的”任何东西?
    关于圆珠笔; 钢笔的原理于 30 年 1888 月 1904 日在美国由 John Loud 获得专利。 而在 60 年,第一个球“帕克”出现在苏联出现之前。 在苏联,它们在 XNUMX 年代大量生产。
  13. 0
    1 March 2022 14:08
    苏联有能力为发展注入数十亿石油美元吗?
    什么十亿,什么石油在 70 年代?
    请不要碰你不知道的问题!

“右区”(在俄罗斯被禁止)、“乌克兰叛乱军”(UPA)(在俄罗斯被禁止)、ISIS(在俄罗斯被禁止)、“Jabhat Fatah al-Sham”(原“Jabhat al-Nusra”)(在俄罗斯被禁止) , 塔利班(俄罗斯被禁止), 基地组织(俄罗斯被禁止), 反腐败基金会(俄罗斯被禁止), 纳瓦尔尼总部(俄罗斯被禁止), Facebook(俄罗斯被禁止), Instagram(俄罗斯被禁止), Meta (俄罗斯禁止)、Misanthropic Division(俄罗斯禁止)、Azov(俄罗斯禁止)、Muslim Brotherhood(俄罗斯禁止)、Aum Shinrikyo(俄罗斯禁止)、AUE(俄罗斯禁止)、UNA-UNSO(俄罗斯禁止)俄罗斯)、克里米亚鞑靼人议会(在俄罗斯被禁止)、“俄罗斯自由”军团(武装编队,在俄罗斯联邦被视为恐怖分子并被禁止)

“履行外国代理人职能的非营利组织、未注册的公共协会或个人”,以及履行外国代理人职能的媒体机构:“Medusa”; “美国之音”; “现实”; “当前时间”; “广播自由”; 波诺马列夫; 萨维茨卡娅; 马尔克洛夫; 卡玛利亚金; 阿帕孔奇; 马卡列维奇; 哑巴; 戈登; 日丹诺夫; 梅德韦杰夫; 费多罗夫; “猫头鹰”; “医生联盟”; “RKK”“列瓦达中心”; “纪念馆”; “嗓音”; 《人与法》; “雨”; “媒体区”; “德国之声”; QMS“高加索结”; “内幕”; 《新报纸》