神奇的苏联三进制计算机

sotkgg 2010-04-18 11:43:09
现今的计算机都使用“二进制”数字系统,尽管它的计算规则非常简单,但其实“二进制”逻辑并不能完美地表达人类的真实想法。相比之下,“三进制”逻辑更接近人类大脑的思维方式。因为在一般情况下,我们对问题的看法不是只有“真”和“假”两种答案,还有一种“不知道”。在三进制逻辑学中,符号“1”代表“真”;符号“-1”代表“假”;符号“0”代表“不知道”。显然,这种逻辑表达方式更符合计算机在人工智能方面的发展趋势。它为计算机的模糊运算和自主学习提供了可能。只可惜,目前电子工程师对这种非二进制的研究大都停留在表面或形式上,没有真正深入到实际应用中去。
  不过,凡事都有一个例外,三进制计算机并非没有在人类计算机发展史上出现过。其实,早在上世纪50、60年代。一批莫斯科国立大学的研究员就设计了人类历史上第一批三进制计算机“Сетунь”和“Сетунь 70”(“Сетунь”是莫大附近一条流入莫斯科河的小河的名字)。
  “Сетунь”小型数字计算机的设计计划由科学院院士С·Л·Соболев在1956年发起。这个计划的目的是为大专院校、科研院所、设计单位和生产车间提供一种价廉物美的计算机。为此,他在莫大计算机中心成立了一个研究小组。该小组最初由9位年轻人(4名硕士、5名学士)组成,都是工程师和程序员。С·Л·Соболев、К·А·Семендяев、М·Р·Шура-Бура和И·С·Березин是这个小组的永久成员。他们经常在一起讨论计算机架构的最优化问题以及如何依靠现有的技术去实现它。他们甚至还设想了一些未来计算机的发展思路。
  随着技术的进步,真空管和晶体管等传统的计算机元器件逐渐被淘汰,取而代之的是速度更快、可靠性更好的铁氧体磁芯和半导体二极管。这些电子元器件组成了一个很好的可控电流变压器,这为三进制逻辑电路的实现提供了可能,因为电压存在着三种状态:正电压(“1”)、零电压(“0”)和负电压(“-1”)。三进制逻辑电路非但比二进制逻辑电路速度更快、可靠性更高,而且需要的设备和电能也更少。这些原因促成了三进制计算机“Сетунь”的诞生。
  “Сетунь”是一台带有快速乘法器的时序计算机。小型的铁氧体随机存储器(容量为3页,即54字)充当缓存,在主磁鼓存储器中交换页面。这台计算机支持24条指令,其中3条为预留指令,目前不用。
  三进制代码的一个特点是对称,即相反数的一致性,因此它就和二进制代码不同,不存在“无符号数”的概念。这样,三进制计算机的架构也要简单、稳定、经济得多。其指令系统也更便于阅读,而且非常高效。
  在这群天才青年日以继夜的开发和研制下,“Сетунь”的样机于1958年12月准备完毕。在头两年测试期,“Сетунь”几乎不需要任何调试就运行得非常顺利,它甚至能执行一些现有的程序。1960年,“Сетунь”开始公共测试。
  1960年4月,“Сетунь”就顺利地通过了公测。它在不同的室温下都表现出惊人的可靠性和稳定性。它的生产和维护也比同期其它计算机要容易得多,而且应用面广,因此“Сетунь”被建议立即投入批量生产。
  不幸的是,苏联官僚对这个不属于经济计划一部分的“科幻产物”持否定的态度。他们甚至勒令其停产。而此时,对“Сетунь”的订单却如雪片般从各方飞来,包括来自国外的订单,但10到15台的年产量远不足以应付市场需求,更不用说出口了。很快,计划合作生产“Сетунь”的捷克斯洛伐克工厂倒闭了。1965年,“Сетунь”停产了。取而代之的是一种二进制计算机,但价格却贵出2.5倍。
  “Сетунь”总共生产了50台(包括样机)。30台被安装在高等院校,其余的则在科研院所和生产车间落户。从加里宁格勒到雅库茨克,从阿什哈巴德到新西伯利亚,全苏都能看到“Сетунь”的身影。各地都对“Сетунь”的反应不错,认为它编程简单(不需要使用汇编语言),支持反向波兰表示法,适用于工程计算、工业控制、计算机教学等各个领域。
  有了“Сетунь”的成功经验,研究员们决定不放弃三进制计算机的计划。他们在1970年推出了“Сетунь 70”型计算机。“Сетунь 70”对三进制的特性和概念有了进一步的完善和理解:建立了三进制字节——“tryte”(对应于二进制的“byte”),每个三进制字节由6个三进制位(“trit”,约等于9.5个二进制位“bit”)构成;指令集符合三进制逻辑;算术指令允许更多的操作数长——1、2和3字节(三进制),结果长度也扩展到6字节(三进制)。
  对“Сетунь 70”而言,传统计算机的“字”的概念已经不存在了。编程的过程就是对三进制运算和三进制地址的操作。这些基于三进制字节的命令将会通过对虚拟指令的编译而得到。当然,程序员们不必考虑这些——他们只需直接和操作数及参数打交道即可。
  “Сетунь 70”是一台双堆栈计算机。其回叫堆栈用来调用子程序。这一简单的改进启发了荷兰计算机科学家艾兹格·W·迪科斯彻,为他日后提出“结构化程序设计”思想打下了基础。
  “Сетунь 70”成了莫斯科国立大学三进制计算机的绝唱。由于得不到上级的支持,这个科研项目不得不无限期停顿下来。

所谓三进制,简单的说就是“逢三进一,退一还三”的进制。
  三进制数码包括“0,1和2。”
  三进制数位小数点前从右往左依次是1位,3位,9位,27位,81位,243位……
  三进制数位小数点后从左往右依次是3分位,9分位,27分位,81分位……
  写时注意应打括号,加下标的3,如(1201)3。读作一二零一,不能读成一千二百零一,这是因为它们对应于27位,9位,3位和1位,不是千百十个位!
  一些常见的十进制数换三进制表
  十进制 三进制
  0  0
  1  1
  2  2
  3  10
  4  11
  5  12
  6  20
  7  21
  8  22
  9  100
  10 101
  ... ...
  三进制在实际生活中较少用到,下面举一例:
  三进制数是以下问题的答案:
  允许在天平两端放置砝码,问N个砝码如何才能称出最多的整克物体?
  答案:1.一个砝码取1克,只能称1克。
  2.二个砝码取1克,3克
  右盘3,左盘1。称2克
  右盘3。称3克
  右盘1,3。称4克
  3.三个砝码取1克,3克,9克
  右盘9,左盘1,3。称5克
  右盘9,左盘3。称6克
  右盘9,1,左盘3。称7克
  右盘9,左盘1。称8克
  右盘9。称9克
  右盘9,1。称10克
  右盘9,3,左盘1。称11克
  右盘9,3。称12克
  右盘9,3,1。称13克
  4.四个砝码取1克,3克,9克,27克。
  ............
  其中的1,3,9,27,81等都是三进制数的数位。
三进制计算机之夫,苏联科学院院士索布洛夫教授
三进制逻辑图
三进制算法设计




Сетунь”是一台带有快速乘法器的时序计算机。小型的铁氧体随机存储器(容量为3页,即54字)充当缓存,在主磁鼓存储器中交换页面。这台计算机支持24条指令,其中3条为预留指令,目前不用。
  三进制代码的一个特点是对称,即相反数的一致性,因此它就和二进制代码不同,不存在“无符号数”的概念。这样,三进制计算机的架构也要简单、稳定、经济得多。其指令系统也更便于阅读,而且非常高效。
  在这群天才青年日以继夜的开发和研制下,“Сетунь”的样机于1958年12月准备完毕。在头两年测试期,“Сетунь”几乎不需要任何调试就运行得非常顺利,它甚至能执行一些现有的程序。1960年,“Сетунь”开始公共测试。
  1960年4月,“Сетунь”就顺利地通过了公测。它在不同的室温下都表现出惊人的可靠性和稳定性。它的生产和维护也比同期其它计算机要容易得多,而且应用面广,因此“Сетунь”被建议立即投入批量生产。


存取逻辑


硬件结构

 不幸的是,苏联官僚对这个不属于经济计划一部分的“科幻产物”持否定的态度。他们甚至勒令其停产。而此时,对“Сетунь”的订单却如雪片般从各方飞来,包括来自国外的订单,但10到15台的年产量远不足以应付市场需求,更不用说出口了。很快,计划合作生产“Сетунь”的捷克斯洛伐克工厂倒闭了。1965年,“Сетунь”停产了。取而代之的是一种二进制计算机,但价格却贵出2.5倍。
  “Сетунь”总共生产了50台(包括样机)。30台被安装在高等院校,其余的则在科研院所和生产车间落户。从加里宁格勒到雅库茨克,从阿什哈巴德到新西伯利亚,全苏都能看到“Сетунь”的身影。各地都对“Сетунь”的反应不错,认为它编程简单(不需要使用汇编语言),支持反向波兰表示法,适用于工程计算、工业控制、计算机教学等各个领域。


1959年的“Сетунь”

1960年开始销售的“Сетунь”

 但是,这些对科学有着执着追求的科学家们并没有退却。有了“Сетунь”的成功经验,研究员们决定不放弃三进制计算机的计划。他们在1970年推出了“Сетунь 70”型计算机。“Сетунь 70”对三进制的特性和概念有了进一步的完善和理解:建立了三进制字节——“tryte”(对应于二进制的“byte”),每个三进制字节由6个三进制位(“trit”,约等于9.5个二进制位“bit”)构成;指令集符合三进制逻辑;算术指令允许更多的操作数长——1、2和3字节(三进制),结果长度也扩展到6字节(三进制)。
  对“Сетунь 70”而言,传统计算机的“字”的概念已经不存在了。编程的过程就是对三进制运算和三进制地址的操作。这些基于三进制字节的命令将会通过对虚拟指令的编译而得到。当然,程序员们不必考虑这些——他们只需直接和操作数及参数打交道即可。
  “Сетунь 70”是一台双堆栈计算机。其回叫堆栈用来调用子程序。这一简单的改进启发了荷兰计算机科学家艾兹格·W·迪科斯彻,为他日后提出“结构化程序设计”思想打下了基础。
  但是,在严重计划经济体制下的苏联,没有上级支持的异类是很难得到发展的。“Сетунь 70”成了莫斯科国立大学三进制计算机的绝唱。由于得不到上级的支持,这个科研项目不得不无限期停顿下来。
  历史无情。如果这些人生在美国,也许今天就会是另一个结局。


Сетунь 70

...全文
2806 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
cuiy0002 2012-01-20
  • 打赏
  • 举报
回复
good
达达拉 2012-01-20
  • 打赏
  • 举报
回复 2
当政治很科技挂上钩后,有用没用就不是科学家所能决定的事情了。
gohands 2012-01-20
  • 打赏
  • 举报
回复 1
[Quote=引用 6 楼 kunyu10 的回复:]

有用的东西还能没发展?
[/Quote]
很多东西其实就是某些人决定的而已。
我觉得三进制或许挺好。就像电波其实有三种状态+-和没有。
地面上三种状态,平,凹,凸
三进制或许更加能够解决资源。
MagiSu 2012-01-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 kunyu10 的回复:]

有用的东西还能没发展?
[/Quote]

同意。
liuling_8008 2012-01-19
  • 打赏
  • 举报
回复

zhengmingxing007 2010-04-20
  • 打赏
  • 举报
回复
春春 2010-04-20
  • 打赏
  • 举报
回复
!!
哎!
  • 打赏
  • 举报
回复
准备下班
TM_skyinfo 2010-04-20
  • 打赏
  • 举报
回复
jxjszh 2010-04-20
  • 打赏
  • 举报
回复
曾经的苏联
神之泪花 2010-04-19
  • 打赏
  • 举报
回复
德配天地 2010-04-19
  • 打赏
  • 举报
回复
有用的东西还能没发展?
caotoulei 2010-04-19
  • 打赏
  • 举报
回复
好老的帖子,反正我没看出来3进制的优势。
hookee 2010-04-19
  • 打赏
  • 举报
回复
~~~~~~~~jF
WheatField 2010-04-19
  • 打赏
  • 举报
回复
三进制怎么实现?

高低电平中间加一个打穿电平?
sotkgg 2010-04-18
  • 打赏
  • 举报
回复
正在操作中的程序员
今天还有一些执着的爱好者,他们业余钻研三进制计算。

但是,人们并没有忘记这些科学领域的探索者们。2008年,俄罗斯莫斯科大学举办了会议,隆重纪念三进制计算机50周年庆典。当年那些风华正茂的科学天才,如今都已是耄耋老人了,但人们不会忘记他们在科学征途上的伟大创举。


当年的研制者К·А·Семендяев

М·Р·Шура-Бура
И·С·Березин

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧