为什么二进制而不是三元计算?

时间:2009-04-18 23:15:47

标签: computer-science ternary-representation

三个状态对象是否能够立即获取更多信息并处理更大的值?我知道处理器目前使用大量的XOR门网,需要重新加工。

由于我们处于64位(我们可以表示2 ^ 63种可能的状态),因此计算等效ternary代可以支持30多个十位位数(3 ^ 63-2 ^ 63)。

我认为在-1和0之间检测+1和0之间的电位差很容易。

硬件,功耗或芯片密度的某些复杂性会抵消存储和计算能力的任何增益吗?

17 个答案:

答案 0 :(得分:59)

  • 构建使用两个以上状态/级别/等级的组件要困难得多。例如,逻辑中使用的晶体管要么是闭合的,要么根本不导通,要么全开。将它们打开半开需要更高的精度并使用额外的功率。然而,有时更多的状态用于打包更多数据,但很少(例如现代NAND闪存,调制解调器调制)。

  • 如果您使用两个以上的状态,则需要与二进制兼容,因为世界其他地方使用它。三是因为转换为二进制需要昂贵的乘法或余数除法。相反,你直接使用四个或更高的两个幂。

这些是为什么没有完成的实际原因,但从数学上讲,完全可以在三元逻辑上构建计算机。

答案 1 :(得分:37)

这里有很多错误的信息。 Binary有一个简单的开/关开关。 Trinary / Ternary可以使用以下两种模式之一:Balanced aka -1,0,+ 1或unbalanced 0,1,2,但不是简单地打开或关闭,或者更准确地说,有2个“on”状态。

随着光纤和扩展硬件的扩展,三元实际上会以更低的成本将我们带到更加广阔和快速的状态。至少在最初阶段,仍然可以使用现代编码(很像32位软件仍然可以在64位硬件上使用)与更新的三进制代码相结合。只需要早期的硬件来检查通过哪一条信息,或者软件是否提前宣布,如果有点或一点点。代码可以一次发送3件而不是现代2件,但功率相同或更低。

使用光纤硬件,而不是现代开/关二进制过程,它将由0 =关闭而其他2个开关确定为光的正交偏振。至于安全性,这实际上可以为个人提供更大的安全性,因为每个PC甚至用户被设置为仅在用户和目的地之间发送/接收的特定极化“规格”。与其他硬件一样,“门”也是如此。它们不需要更大,只需要3种可能性而不是2种。

甚至有一些理论,甚至可能开始对约瑟夫森效应进行一些测试,这将允许使用循环超导电流,顺时针,逆时针或关闭三元存储单元。

直接比较时,Ternary是具有最高基数经济的整数基数,紧随其后的是二元和四元。甚至一些现代系统也使用一种三元逻辑,即SQL,它实现了三元逻辑作为处理NULL字段内容的方法。 SQL使用NULL来表示数据库中缺少的数据。如果字段不包含已定义的值,则SQL假定这意味着存在实际值,但该值当前未记录在数据库中。请注意,缺失值与数字值零或字符串值零长度不同。将任何内容与NULL进行比较 - 甚至是另一个NULL - 会导致UNKNOWN真实状态。例如,对于City字段中带有“Chicago”的记录,SQL表达式“City ='Paris'”解析为FALSE,但对于具有NULL City字段的记录,它解析为UNKNOWN。换句话说,对于SQL,未定义的字段可能代表任何可能的值:缺失的城市可能代表也可能不代表巴黎。这就是三元逻辑与现代二元系统一起使用的地方,虽然粗糙。

答案 2 :(得分:16)

当然,我们每比特能够保存更多数据,就像我们的十进制数系统可以在一个数字中保存更多数据一样。

但这也增加了复杂性。二进制在许多情况下表现得非常好,使得操作非常简单。二进制加法器的逻辑比三元数的逻辑简单得多(或者就此而言,十进制加法器的逻辑)。

您无法神奇地存储或处理更多信息。硬件必须更大,更复杂,而不是抵消更大的容量。

答案 3 :(得分:10)

答案 4 :(得分:9)

很多事情都与最终将位表示为电脉冲的事实有关,并且更容易构建简单区分“充电”和“无电荷”的硬件,并且可以轻松检测状态之间的转换。利用三种状态的系统在区分“带电”,“部分带电”和“无电荷”时必须更精确一些。除此之外,“充电”状态在电子学中不是恒定的:能量最终开始“流血”,因此“充电”状态在能量的实际“水平”上变化。在三态系统中,也必须考虑到这一点。

答案 5 :(得分:7)

嗯,首先,没有比信息更小的信息单位。对比特进行操作是处理信息的最基本和最基本的方式。

也许一个更强有力的理由是因为它更容易制造具有两种稳定状态的电子元件,而不是三种。

除此之外:你的数学有点偏差。在64位三进制数中有大约101.4个二进制数字。说明:最大的64位三进制数是3433683820292512484657849089280(3 ^ 64-1)。以二进制表示,需要102位:101011010101101101010010111111100011110111100100110010001001111000110001111001011111101011110100000000

这很容易理解,log2(3 ^ 64)约为101.4376

答案 6 :(得分:4)

还有一些理论认为光纤可以使用光频率(即颜色)来区分状态,从而允许接近无限(取决于检测单元的分辨率)基数可能性的数量。

逻辑门绝对是任何基地都是免费的,但让我们用trinary作为例子:

对于三重XOR门,它可以是它正在比较的三个状态中的一个(或任何)或其他三个状态之一。它还可以将三个状态中的两个连接在一起以获得二进制输出。可能性逐渐呈指数级增长。当然,这需要更复杂的硬件和软件,但复杂性应该减小尺寸,更重要的是减小功率(读取热量)。甚至有人谈论在纳米计算系统中使用三元组,其中有一个微观的“凸起,一个”洞“或”未改变“来代表三个州。

现在,我们处于QWERTY类型的问题。由于键入机制不再存在问题,Qwerty的设计效率低下,但今天使用键盘的每个人都学会使用qwerty系统而没有人愿意改变它。当我们达到二进制计算的物理限制时,有一天会有一个或更高的基数突破这个问题。也许不会再过二十年,但我们都知道,我们不可能每年都能继续加倍我们的能力。

答案 7 :(得分:3)

Screwball的回复是正确的,并纠正了此处提供的一些错误陈述。那些回答分数正值的人完全错过了基于0,+ 1和-1的三元系统的概念。在20世纪50年代由俄罗斯人首次建造时,苏联和美国之间的竞争非常激烈。我怀疑两者之间的政治与美国二元对苏联三元的最终受欢迎程度有很大关系。

据我所知,有一些三元计算机正在使用中。莫斯科在他们的大学有一些使用,IBM在其实验室中有一些。有其他参考,但我无法区分它们有多严重,或者它们只是用于实验或游戏。显然,它们的构建成本要低得多,并且它们使用的能源要少得多。

答案 8 :(得分:3)

“比特”的三元等价物引起了太多的愤怒!

答案 9 :(得分:2)

另一个主要障碍是需要定义更多的逻辑操作。运算符的数量由公式b ^(b ^ i)求出,其中b是基数,i是输入的数量。对于双输入二进制系统,这适用于16个可能的运算符。并非所有这些通常都在门中实现,并且一些门覆盖多个条件,但是所有这些都可以用三个或更少的标准门来实现。对于双输入三元系统,这个数字远高于19683.虽然这些门中的几个将彼此相似,但最终手动设计基本电路的能力几乎是不可能的。虽然即使是新生工科学生也能够设计出基本的二进制电路。

答案 10 :(得分:1)

我非常肯定,很多事情都需要对数字信号进行错误检查。例如,在量子计算中,这项任务几乎是不可能的,但并非不可能,以实现非克隆原则,但也由于存在更多状态的事实。对于两个状态,错误检查的过程并不简单,但相对容易。对于三种状态,错误检查变得无限困难。这也是为什么排除了几乎无限状态的模拟计算机的原因。

如果你对量子计算感兴趣,虽然看看球体包装和量子错误检查,那里有一些非常好的东西。

答案 11 :(得分:1)

我认为这有两个原因(如果我错了请纠正我):首先因为0和1的值不是真正的无电流/电流或类似的东西。噪声非常高,并且电子元件必须能够区分从0.0到0.4波动的值是零,并且从0.7到1.2是一个。如果你添加更多级别,你基本上会使这种区别变得更加困难。

第二:所有布尔逻辑都会立即停止有意义。而且既然你可以用布尔门实现总和,并且从sum,每个其他数学运算中实现总和,那么将某些东西很好地映射到数学的实际用途就更好了。 false / maybe / true之间的任意对的布尔真值表是什么?

答案 12 :(得分:0)

我认为三元会更有效率。它从未流行过。 Binary走上舞台,现在转向三元将改变我们所知道的一切。

答案 13 :(得分:0)

要使电路在除二进制之外的任何操作中运行,您必须定义其他状态的表示方式。你已经提出了一个-1,0和+1的系统,但晶体管不能这样工作,他们喜欢让它们的电压或电流只向一个方向流动。制作一个3态的位需要2个晶体管,但你可以用相同的晶体管制作2个二进制位,并且有4个状态而不是3个。二进制在低电平时更实用。

如果您尝试在电路上设置阈值并使用0,+ 1,+ 2代替,则会遇到一组不同的问题。我不太了解细节,但对于逻辑电路来说,这比它的价值更麻烦,特别是当业界已经完全专注于二进制时。

有一个区域使用多个级别来获得每位超过2个状态:MLC闪存。即使在那里,级别的数量也是2的幂,因此输出可以很容易地转换为二进制,供系统的其余部分使用。

答案 14 :(得分:0)

当然但是三元'比特'(一个tet?)会更复杂,你仍然存储相同数量的信息,只是在base3而不是base2,并且如果两个状态组件是简单的话。为什么不继续做一个10州的基地10

二进制计算与二进制AND,OR和NOT门有关,它们极其简单,能够组合成任意复杂的结构。它们是计算机所有处理过程的基石。

如果有严重的情况要切换到三元或十进制,那么他们会。这不是'他们尝试过这样的事情而只是坚持'

答案 15 :(得分:0)

如果我们使用3个状态,那么由此产生的主要问题是

  1. 如果我们使用单极性信号,那么噪声容限将减小,从而增加误码率。
  2. 对于保持噪声容量恒定的单极性信号,我们必须增加电源,因此功耗会增加。
  3. 如果我们使用双极性信号,那么信号的总摆幅将增加,从而增加损耗。
  4. 必须添加多层PCB中的额外层以解决双极信号中的负摆动。
  5. 希望我有说服力

答案 16 :(得分:-2)

我认为它更多地与可编程性,条件语句以及晶体管的有效使用和功能有关。如果通过电路有电流,嵌套的IF可能是显而易见的,但如果解决方案可以通过一千种不同的路径实现,程序将如何知道该怎么做?人工智能在人工智能方面很有意思,其中记忆和学习远比强大的计算能力重要。