|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
现今的计算机都使用“二进制”数字系统,尽管它的计算规则非常简单,但其实“二进制”逻辑并不能完美地表达人类的真实想法。相比之下,“三进制”逻辑更接近人类大脑的思维方式。因为在一般情况下,我们对问题的看法不是只有“真”和“假”两种答案,还有一种“不知道”。在三进制逻辑学中,符号“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,第二位上的单位是31=3,第三位上的单位是32=9,第四位上的单位是33=27.根据上面的分析可知,对四个数位上的单位1,3,9,27分别的3种状态进行组合就可以得到0和80个正数.这与其它进制类似.
但是,如果我们取1,0,-1来分别表示每个数位上的三种不同状态,情况就不一样了.为书写方便,我们换$来表示-1.例如,个位上的1,0,$分别表示加1,0,减1;三位上的1,0,$分别表示加3,0,减3,A位上的1,0,$分别表示加A,0,减A.这样,每个数位就可表示三个数,4个数位可表示34=81个数.我们来仔细看看这81个数(见附录),其中40个正的,1个0,40个负的.这40个正数恰好就是我们引题所需要的.
这种取0和0左右两边对称的1,-1来计数的方法,我们称之为对称三进制.首先,对称三进制也是三进制的一种形式.对称三进制也是逢三进一,每轮经历完$,0,1,便向更高层进一.另外,对称三进制是一种特殊的三进制.每轮中的$和1是对称的,而从全体数来看,对称三进制数的正负是对称的,这种对称不需要像十进制那样借助负号的力量.
当然,我们也可以用对称三进制数表示小数.其原理同表示整数类似。
(引)三进制的应用
就像二进制用于计算机,七进制用于星期,二十四进制和六十进制用于时钟一样,对称三进制也可以用于生活.例如,有这样的一个问题:27个苹果,已知其中有26个是同样的重,有1个比另26个要轻.现有一没有砝码的天秤,要求使用天秤次数最少的方法把这个轻的苹果准确的找出.这个问题我们也可以用对称三进制的方法来解决.27个苹果每9个为一组,称的时候,放在天秤的左边的苹果为一组,右边的为一组,没有放在天秤上的为一组.而每次称的时候,天秤也是有三种状态,左边的组比右边的一组轻,右边的一组比左边的一组轻,左右两组一样重.分别对应于那个轻苹果的3种状态:在天秤左边的一组中,在右边的一组中,在没有放在天秤上的一组中.然后,又可以对轻苹果所在的那一组的9个苹果进行同样的处理,由27个到9个,再到3个,再到1个,共用了3次天秤.这也仅仅只是一个数学游戏,它就是充分应用对称三进制的思想而得以解决。
|
|