社会主义计算:计算机的工程问题
ICL2980 曾使用EMAS单层存储。这一型号与我们提出的PSM在架构上有很多共同之处。在1980年代早期,我曾希望这一型号能适用于社会主义计划。
在阿林·科特尔和我出版《走向新社会主义》的同一年,我还出版了一些计算机科学的书籍。这两本计算机科学的书籍似乎与关于社会主义的书关系不大,但它们其实是与一个科学研究的学术史密切相关的。这一科学研究持续数十年,并最终导向了《走向新社会主义一书》。
第一本书是关于持久性程序设计语言PS-algol(译者注:PS-algol是由S-algol扩展而来,是全世界第一个完全实现持久性编程的语言,在学术界曾有大量的使用者。本文作者是这门语言的几位设计者之一。)
第二本书是关于如何在PC机上用128位地址空间实现PS-algol语言
第三本书是关于计算机化的社会主义经济计划(译者注:本书已由“无产者评论”翻译成中文。中文版链接:http://ricardo.ecn.wfu.edu/~cottrell/socialism_book/TNS_chinese.pdf)
大约1981年之后,我就一直在从工程的角度思考社会主义计算问题,试图找到计算机工程的解决方案。另外两本书部分地记录了这一段历史。现在提起这件事,是因为我在1980年代提出的诸多工程解决方案里,有一些是完全超前于当时已有的技术,因而在技术上对于未来的计划经济可能仍有一定的意义。
特别地,我聚焦于两个问题:持久存储,以及我设计和开发原型的全局地址空间计算机。
数据管理员
1981年左右,爱丁堡大学的数据管理机器(data curator)。这是一台面向客户机网络的目标服务器。右边的盒子是60MB的硬盘——在当时这是非常先进的。高高的机柜是Perkins Elmer 32位机。这台计算机上运行着一套爱丁堡大学开发的操作系统Mouses。
从1980年年末到1982年的夏天,我一直在做我的博士研究。研究主题是如何把数据持续性的概念纳入到高级编译语言中,并通过某种方式的整合,使之能够在分布式网络的环境中运行。
由于这一技术背景,同时又因为我是一名马克思主义经济学家,一名来自中国的博士同学(他是中共党员,现在仍然是毛派)问我,是否愿意到北京的计委工作,把我们在爱丁堡开发的一些技术介绍给中国的计划部门。后来,尽管我同意了这个请求,但我的中国同志发现,虽然中国在邀请外国的计算机专家,但计划部门却是外国人不能染指的。
请容我先解释一下1980年代初我们在奥丁堡的这项研究的背景,以及为什么认为它有意义。
在1980年,主导性的计算范式将计算机存储分为逻辑上完全不同的两个部分:随机存取存储(RAM)和文件存储。每当计算机一关闭,RAM中的数据就消失了,而文件存储中的数据却是持久的。这一概念上的区别反映了两种不同的技术:半导体的DRAM和旋转磁盘。我们仍在使用这两项技术,但是在新的计算机中,持久半导体存储(SSD)正在快速替换老式的旋转磁盘。
现在,无论RAM或者SSD都是由硅制成的,而且二者都允许快速随机存取。但是老旧磁盘文件系统的概念遗产仍然存在至今。只有通过读取的系统调用才能打开和访问文件,而程序一终止,保存在程序变量里的数据就会消失。
但从原则上讲,奇妙的虚拟存储技术能够隐藏持久存储和非持久存储之间的这种区分。1970年代末和1980年代初,我们在奥丁堡使用EMAS操作系统,以及麻省理工大学的Multics系统遵循了一个不同的观念。用户的文件被映射到程序的地址空间中,程序可以像访问数据数据一样访问它们。一些早期的解释型语言比如APL和Smalltalk也有“工作空间”的概念。在“工作空间”中,程序的变量可以在不同的登录会话之间一直存在着。
虽然WindowsNT、Windows10等都采用了内存映射的文件系统,但当前大多数人在编程时,仍然遵循老式的文件读取范式。
对于数组数据类型,文件的内存映射非常好用。在大多数编程语言中,堆数据(类的实例,图,树等)仍然是非持久性的。JAVA序列化提供了堆持久性的一个有限的形式,但这一特点并不像Smalltalk中早已实现的那样,具有前后一致性和正交性(orthogonal)。
Xerox Alto,全世界第一台个人工作站,没能完成商业化。
高级个人机(APM),Richard Marshall在演示。
1980年,商业个人电脑是很小的Apple2,或者类似的八位机。那时候没有万维网,而以太网也只是Xerox Parc里的一个研究系统。所以爱丁堡的计算机科学系研发了自己的工作站:APM,以及自己设计的以太网。
数据保管员(Data Curator )项目成功地展示了,可以为编译语言实现一个分布式的对象结构化的虚拟存储。最初的演示是面向Algol的一个来自圣安德鲁斯大学的方言:S-algol。
爱丁堡大学的扩展版本名叫PS-algol,其中P表示持久性(Persistent)。后来,持续性被构建进了Napier88、Fibonacci,以及JAVA的变种pJama等编程语言。
当我被请求去中国的时候,我已经开始思考能够如何将持久性技术应用于像中国这么大的经济体的计划之中了。我想到的第一点是,我们需要一个非常大的分布式计算系统。这一系统比我们以往试验过的系统都要大得多。如果我们设想未来中国的全自动计划系统,那么这一系统需要协调来自于上亿台计算机所产生的数据。这一系统必须将所有这些数据,全部集成到一个单一的巨型共享数据库中。此数据库能够协调全部的社会生产。
持久存储计算机
这也就意味着,我们需要一个有巨大共享虚拟地址空间的计算机架构,比最大使用32位地址空间的1980年代的计算机要大得多。还要记住一点,这是在苏联解体之前,当时社会主义似乎仍在全球范围内获胜。所以我当然认为,面向社会主义的计划的设计从原则上讲要能够扩展到全球性的计划,因为未来总有一天,计算机的数量会超过人的数量。
那时候,全世界人口的数量大约是40亿,如果按照1个人一台电脑计算,就已经耗尽了32位地址空间了。
我设计的第一个计算机架构PSM,就使用了128位地址空间,由48位的主机号,48位本地对象号,以及最大32位的对象内偏移量组成。也就是说,单个对象的大小可以达到4G。
PSM提出的寻址机制。扫描自持久存储计算机(PSM)的原始报告。
地址分为48位主机号,48位对象号。扫描自持久存储计算机(PSM)的原始报告。
对象可以通过一个全球性的网络,从一个源计算机拷贝至任何拥有主机/LON组合拷贝的计算机。这跟后来的URL的理念非常相似,但区别在于,标识符用的是二进制数,而不是文本形式。
寄存器架构。A是累加器,V、D和C是128位的地址寄存器。I和L是索引寄存器。T是用于嵌套事务存储的事务寄存器。(来自原始报告)
寄存器的稀疏集受到ICL 3900系列的强烈影响。我们当时与ICL紧密合作,将PSM视为3900的后继架构。128位累加器在3900上已经使用了。我们提出的分区寄存器比3900上的要长。我们的想法是,对已有的3900系列做一些微码变更,作为PSM的原型。
ICL给了我们一台早期的3900计算机。我们迁到了格拉斯哥大学,这台机器放在了那里。但是在评估微码的时候遇到了阻碍,所以格拉斯哥的研究平台就换成了另一个新的计算机。我们在后面的文章会做介绍。
结语
社会主义计算要成为可行的,必须解决一些工程问题。计划系统必须能够访问现在已经被称为“大数据”的海量数据,统合来自于数百万台计算机的信息,还要有一个非常大的数据库。这个数据库比1980年初已有的32位机所能寻址的空间要大得多。
多亏互联网和云数据服务器,如今能做这些事情的技术都已经成熟了。
然而,仍然可以争论的是,所有这些技术所基于的计算范式,即非持续性的RAM加上分布式文件系统,在分布式图结构的计算上,相比我们在格拉斯哥大学于1980年代中期提出的那种地址架构来说,要更难处理。有了现代的大规模集成电路技术,设计一个128位目标寻址的RISC处理器应该是可行的。我们提出的ICL存储器架构明显已经过时了,必须代之以更加现代的架构。
* 来源:
https://paulcockshott.wordpress.com/2019/05/10/__trashed/
关于计算机化的社会主义经济计划,本书已由“无产者评论”翻译成中文。中文版链接:
http://ricardo.ecn.wfu.edu/~cottrell/socialism_book/TNS_chinese.pdf
作者:保罗·科克肖特
译者:太平洋的风
校对:周原
编辑:圣光猫