平衡三进制计算机模拟2

news2024/11/26 5:56:05

1、计算机的起源

       在19世纪的时候,“Computer”代表的并不是计算机,而是计算员,那时并没有计算机的概念,而计算员当然是要计算东西的,当时计算东西多,计算水平也参差不齐,加上疲劳等因素,很难保证每个人算出来的数据都准确,最后还要人工核对,消耗如此多的人力物力才能保证计算结果的准确性,这样查尔斯·巴贝奇(Charles Babbage)就该登场了。

1.1、机械时代

差分机

        差分机(Difference Engine)是一种早期的机械计算设备,由英国数学家和发明家查尔斯·巴贝奇(Charles Babbage)在19世纪初设计。差分机的主要用途是计算多项式函数的值,以生成数表,例如航海和工程中的对数表和三角函数表。

        它设计原理基于有限差分法(finite differences),这是一种数值方法,用于计算多项式的值,使用齿轮和杠杆来不断执行加法和减法运算,从而逐步生成所需的数值,它的重要性不仅在于它能够自动化地进行复杂的计算,更在于它是现代计算机科学发展的早期里程碑,尽管巴贝奇的差分机在他的一生中并未完全建成,但他的设计理念为后来的计算机发展奠定了基础。

程序

        最早期的程序都是打孔纸带,是19世纪20年代,在一次工厂参观中,巴贝奇见到了由法国工程师约瑟夫·玛丽·雅卡尔(Joseph Marie Jacquard),在1804年发明的提花织布机,这种半自动的织布机有一条打孔纸带,随着纸带的滚动上面的孔洞会推动织布机的吊钩,从而自动织出不同花纹的布匹,这给了巴贝奇灵感,提花机的存在说明了机器能够理解人类的思维,所以巴贝奇将只能用来制表计算的差分机设计全部推翻,决心设计一种通用的数学计算器,也就是后来的分析机。

        世界上公认的第一位程序员是阿达·洛芙莱斯(Ada Lovelace,1815年12月10日-1852年11月27日),是英国诗人乔治·戈登·拜伦(Lord Byron)的独生女,阿达于1833年认识了英国数学家和发明家查尔斯·巴贝奇,并对他的差分机(Difference Engine)和分析机(Analytical Engine)产生了浓厚兴趣。

        她编写第一个计算机程序,在她的注释中,阿达描述了如何为分析机编写一个计算伯努利数(Bernoulli numbers)的算法,这个算法被认为是世界上第一个计算机程序,从而使她获得了“第一位程序员”的称号。

分析机

        分析机(Analytical Engine)是由英国数学家和发明家查尔斯·巴贝奇(Charles Babbage)在19世纪中叶设计的一种早期机械计算设备,它被认为是世界上第一台通用计算机的概念模型,分析机的设计包括了现代计算机的许多基本概念,如存储器、中央处理器和输入输出设备,是现代计算机的先驱。


1.2电器时代

图灵机

图灵机(Turing Machine)是由英国数学家艾伦·图灵(Alan Turing)于1936年提出的一种抽象计算模型。图灵机是计算理论中的核心概念,用于形式化地定义计算和算法的概念,图灵机不仅在理论计算机科学中具有重要地位,也是现代计算机的理论基础。


2、平衡三进制基础门

        将会在原文章平衡三进制计算机中,不断的用新的编码,继续简化原来的设计,也会用到之前的平衡三进制摩根定律定律,这四个基础逻辑门分别是:TOR、TNOR、TNAND、TAND,它们的真值表是对称的,可通过如下图所示的对输入取反(垂直箭头)或对输出取反(水平箭头)来转换它们,如下图所示:

平衡三进制摩根定律

2.1平衡三进制新二进制编码

        这种编码能用,发现这种编码弄出来的平衡三进制逻辑门所用的门更少,反正是能用更少的门完成原来的事了,同时输入输出也是标准的,如下所示:

二进制编码平衡三进制表示
10T
000
011
11未使用,可用于纠错等

2.2平衡三进制逻辑非

        如下所示,非的逻辑表示是要不要取反,当为00时要取反,而输入11时得到结果仍为00,得以下TNot组件,如下图所示:

逻辑非转换表
T110---》01
0000---》00
1T01---》10

TNEG(门5个,延迟4)

2.3平衡三进制逻辑与门

        平衡三进制逻辑与门:是有T出T、双1出1、其余为0,也就是可以分别判断三种情况,分别对其输出,如下所示:

逻辑与T01
TTTT
0T00
1T01
TAND(门4个,延迟4)

2.4平衡三进制逻辑或门

        平衡三进制逻辑或门:是有1出1、双T出T、其余为0,也就是可以分别判断三种情况,分别对其输出,如下所示:

逻辑或T01
TT01
0001
1111
TOR(门4个,延迟4)

2.5平衡三进制与非门

        平衡三进制逻辑与非门:是有T出1、双1出T、其余为0,也就是可以分别判断三种情况,分别对其输出,如下所示:

逻辑与非T01
T111
0100
110T
TNAND(门4个,延迟4)

2.6平衡三进制或非门

        平衡三进制逻辑或非门:是有1出T、双T出1、其余为0,也就是可以分别判断三种情况,分别对其输出,如下所示:

逻辑或非T01
T10T
000T
1TTT
TNOR(门4个,延迟4)

2.7平衡三进制三与门

        平衡三进制逻辑三与门:是有T出T、三1出1、其余为0,也就是可以分别判断三种情况,分别对其输出,如下所示:

平衡三进制三与门真值表
T3AND(门8个,延迟6)

2.8平衡三进制三或门

        平衡三进制逻辑三或门:是有1出1、三T出T、其余为0,也就是可以分别判断三种情况,分别对其输出,如下所示:

平衡三进制三或门真值表
T3OR(门8个,延迟6)

3、平衡三进制基础门的扩展

3.1平衡三进制异或门

        平衡三进制逻辑异或门:双T及双1出T、1T及T1出1、其余为0,也就是可以分别判断三种情况,分别对其输出,如下所示:

逻辑异或T01
TT01
0000
110T
TXOR(门8个,延迟6)

3.2平衡三进制同或门

        平衡三进制逻辑同或门:双T及双1出1、1T及T1出T、其余为0,也就是可以分别判断三种情况,分别对其输出,如下所示:

逻辑同或T01
T10T
0000
1T01
TXNOR(门8个,延迟6)

3.3平衡三进制共识门

        平衡三进制逻辑同或门:双T出T、双1出1、其余为0,也就是可以分别判断三种情况,分别对其输出,如下所示:

逻辑共识T01
TT00
0000
1001
TCONS(门4个,延迟4)

3.4平衡三进制调和门

        平衡三进制逻辑调和门:当为TT、0T、T0时出T,当为11、01、10时出1,其余为0,也就是分别判断有T及有1的情况,然后排除T1、1T就可得二种情况,分别对其输出,如下所示:

逻辑调和T01
TTT0
0T01
1011
TANY(门9个,延迟8)

3.5平衡三进制布尔基础件

        这布尔转换件很好用,名称为3Mux-1,可以将平衡三进制的值转换成3组二进制的布尔值,无论在条件判断上,还是指令解释器中都很好用,如下表所示:

3MUx-1二进制转换
T100
0010
1001
3Mux-1(门3个,延迟4)

3.6平衡三进制三态复用器

        平衡三进制的三态多路复用器,详情请看平衡三进制全加器这文章,这组件可以让不同的输入从不同的端口进行输出,结合布尔基础件可得三态多路复用器,如下所示:

数据选择端形成双向通路
TN端 到 输出端
0N端 到 输出端
1N端 到 输出端
3-Mux-1(门9个,延迟6)

3.7平衡三进制左偏门、右偏门

        在选择全加器上有用到,可弄成基础件,从而转换输入简化输入,形成了(A+1)与(A-1)的输入,下面是输入输出真值表,如下所示:

Left-Mux(门5个,延迟6)
Right-Mux(门5个,延迟6)

3.8平衡三进制最小门、最大门

        在选择全加器上也有用到,可弄成基础件,从而转换输入简化输入,形成了Max(A,0)与Min(A,0),如下所示:

Min-Mux(门5个,延迟6)
Max-Mux(门5个,延迟6)

4、平衡三进制全加器

        在文章平衡三进制全加器及平衡三进制计算机中,都用到了数据选择全加器,将进位位与加和位分开来实现,设计是很巧妙,但用二进制来模拟门还是太多了,即使后面做了优化,将平衡三进制半加器的中间表转换输出后,也只是从188个门降到了170个门,这与编码方式有关,但也与这种选择结构有关,如果没有原生实现这种组件,那确实导致门用太多不好化简的结果。

        一开始就想像二进制的加法器同样设计,用1个异或门可以算出加和位,1个与门可以算出进位位,这样1个异或门和1个与门,可以组成一个半加器,而2个半加器及1个或门,可以组成1个全加器,而平衡三进制有没有这样的结构,是有的,当初的我道行不够推不出来,现在道行够了自然而然的就推出来了,推理过程如下:


4.1平衡三进制新的全加器

        看上面的图,这是全加器的真值表,按照原来的思路是用平衡三进制的半加器,来组成平衡三进制的全加器,而平衡三进制与二进制不同,进位位不知如何处理,后面就放弃了这结构,直到今天又捡了起来,我们可以先分三组进行分析先,如下图所示:

分为三组数据
对三组数据分别进行相加结果

        通过上面的分析,可以看出当用两个平衡三进制半加器,将两个数相加后,加和位是固定下来了,而多了两个进位位,也会有运算,所以就再用一个平衡三进制半加器,这样就可以组成一个平衡三进制全加器了,如下图所示:

平衡三进制全加器初始版

        上面用了3个平衡三进制半加器,组成了1个平衡三进制全加器,然后分析一下,结合上面的手写的第二张图,进位位的运算有:T+1、0+T、T+0、0+1、1+0、1+T,输出只有加和位,不会有进位位的输出,也就说可以再优化,将进位位的半加器用什么门给代替掉,就可形成类似于二进制加法器的结构,可列出表格,如下所示:

T01
TT0
0T01
101

        然后,你就会惊奇的发现,这上面的残缺的门跟平衡三进制调和门很像,如果深入下去就会发现,原来这平衡三进制的共识门和平衡三进制的调和门,分别是对应处理的是平衡三进制半加器的进位位及平衡三进制全加器的进位位,这波属实是破案了,难怪我一直不知这两个门有什么用,也一直没有加入进来,可能前苏联的三进制计算机的加法器,就是用了这种结构不然不会有这个门的真值表留了下来的,这样就提出了一种新的结构,用2个平衡三进制半加器及1个平衡三进制调和门组成一个平衡三进制全加器:

平衡三进制全加器最终版

4.2平衡三进制半加器

        平衡三进制半加器:加和位是(11、0T、T0)出T,(TT、01、10)出1,其余出0;进位位是TT出T,11出1,其余出0,也就是可以分别判断情况,分别对其输出,如下所示:

平衡三进制半加器真值表
half-Adder(门22个,延迟12)

4.3平衡三进制全加器

         平衡三进制逻辑全加器:由2个平衡三进制半加器及1个平衡三进制调和门组成,真值表如下,分别对其输出,如下所示:

full-Adder(门53个,延迟12)

4.4平衡三进制多位加法器(4Trit)

        平衡三进制4trit的加法器,它可以计算(-81到81)以内的加减法,这是它的优点,加法器与减法器都是它,如下所示:

4Trit-Adder(门212个,延迟112)

现在就可以试试它的计算功能了,如下图所示:


4.5平衡三进制多位加法器(8Trit)

        平衡三进制8trit的加法器,它可以计算(-6561~6561)内的加减法,如果还不够可以继续串联,如下所示:

8Trit-Adder(门424个,延迟224)

现在就可以试试它的计算功能了,如下图所示:


5、平衡三进制乘法器

          平衡三进制的乘法也很简单,就像是两位十进制的数相乘,如:10*11=110,先分别相乘,然后相加就可以了,平衡三进制的乘法也是这样的;先是零乘任何数都为0,然后1*1与T*T结果都为1、最后是T*1或是1*T结果都为T,由此可列出表格;下面是平衡三进制乘法对照表,同时也是平衡三进制逻辑同或门的真值表,如下所示:

平衡三进制乘法对照表
MultiplyT01
T10T
0000
1T01

5.1平衡三进制两位乘法器

        这平衡三进制的乘法器,其实跟二进制的乘法器,结构差不多,只要把组件更换一下就行,了,可以看哔哩哔哩爱上半导体的视频讲解,下面是原理结构图,如下所示:

        这样按照上的构思,平衡三进制两位乘法器就弄好了,可以算(-16~16)之间的正负乘法,可以扩展成更多位的,如下所示:

2Trit-Multi(门76个,延迟26)

现在就可以试试它的计算功能了,如下图所示:


 总结:

剩下的寄存器之间、多位或、多位乘法器等,你们可以看原来的平衡三进制计算机来设计,结构也太差不差,感觉确实可以弄一台出来玩,虽然真的没什么用,不过可以吹牛说这是一台三进制的计算机,用的也是三进制的逻辑,属实是装逼神器,你值得拥有。

参考资料:

1、Douglas W. Jones on Ternary Logic

2、维基百科-平衡三进制

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1941437.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华夏银行的进和退:不良率位列同业第一,分红比例常年不达标

撰稿|芋圆 来源|贝多财经 近日,华夏银行股份有限公司(SH:600015,下称“华夏银行”)北京分行联合北京产权交易所举办了特殊资产推介会。会上,华夏银行包括北京分行在内的7家分行和信用卡中心,共同推介了超…

从操作系统层面认识Linux

描述进程-PCB Linux操作系统下的PCB是: task_struct https://www.cnblogs.com/tongyan2/p/5544887.htmlhttps://www.cnblogs.com/tongyan2/p/5544887.html校招必背操作系统面试题-什么是 PCB(进程控制块) ?_哔哩哔哩_bilibili校招必背操作系…

汉明权重(Hamming Weight)(统计数据中1的个数)VP-SWAR算法

汉明权重(Hamming Weight)(统计数据中1的个数)VP-SWAR算法 定义 汉明重量是一串符号中非零符号的个数。它等于同样长度的全零符号串的汉明距离(在信息论中,两个等长字符串之间的汉明距离等于两个字符串对应位置的不同…

浏览器插件利器--allWebPluginV2.0.0.16-beta版发布

allWebPlugin简介 allWebPlugin中间件是一款为用户提供安全、可靠、便捷的浏览器插件服务的中间件产品,致力于将浏览器插件重新应用到所有浏览器。它将现有ActiveX控件直接嵌入浏览器,实现插件加载、界面显示、接口调用、事件回调等。支持Chrome、Firefo…

刷题了:242.有效的字母异位词 |349. 两个数组的交集 | 202. 快乐数|1. 两数之和

学习记录,主要参考:代码随想录 哈希表理论基础 文章讲解:https://programmercarl.com/%E5%93%88%E5%B8%8C%E8%A1%A8%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html 哈希表(Hash table) 哈希表是根据关键码的值而直接进行访问的数据…

deepseek-vl 论文阅读笔记

目录 一、已有模型性能差距分析 二、创新点 数据集构建 模型架构 训练策略 实验与评估 三、细节 数据构建 内部SFT数据的分类体系 模型架构 训练流程包括三个阶段 系统包含三个模块 混合视觉编码器 视觉-语言适配器 语言模型 训练策略 阶段一:训练…

nfs和web服务器的搭建

(一)web服务器的搭建 1.配置基本环境 要点有,yum源,包含nginx和阿里云(或者腾讯云或者华为云),这里的相关知识可以参考之前的yum配置笔记 2.安装nginx yum -y install nginx 3.验证并且开启服…

MLCC电容特性及注意事项

MLCC结构和工作原理 如下图所示,MLCC电容结构较简单,由陶瓷介质、内电极金属层和外电极三层构成。 MLCC的电容量公式可以如下表示: C:电容量,以F(法拉)为单位,而MLCC之电容值以PF&…

AWE2025正式启动,AWE×AI 推动智慧生活的普及

7月18日,2025年中国家电及消费电子博览会(AWE2025)正式启动。主办方宣布,AWE2025的主题为“AI科技、AI生活”,展会将于2025年3月20-23日在上海新国际博览中心举办。 作为全球三大家电和消费电子领域展会之一&#xff…

数字孪生智慧农业技术:优化农业生产的未来

随着科技的进步和全球食品需求的增长,数字孪生智慧农业技术作为现代农业生产的新兴力量,正在为农业界带来革命性的变化和巨大的发展潜力。本文将深入探讨数字孪生智慧农业技术的核心架构、关键技术应用及其在提升农业生产效率和可持续发展中的作用。 ###…

word压缩大小怎么弄?这几种方法轻松压缩word文件!

word压缩大小怎么弄?面对庞大无比的Word文档,我们往往遭遇诸多不便,它们如同数据海洋中的巨鲸,不仅鲸吞存储空间,更在传输途中缓缓游弋,耗费大量时光,在资源有限的设备上,这些文档仿…

python基础语法 007 文件操作-1读取写入

1 文件操作 1.1 什么时候用文件操作? 打开文档写东西看东西拿文档做统计 在python 文档操作作用 存储数据读取数据 打开文件有什么用? 读取数据,写入数据不管什么数据都可以用open打开,如可复制一张图片 1.2 open() 读取,…

开源模型应用落地-FastAPI-助力模型交互-进阶篇-中间件(四)

一、前言 FastAPI 的高级用法可以为开发人员带来许多好处。它能帮助实现更复杂的路由逻辑和参数处理,使应用程序能够处理各种不同的请求场景,提高应用程序的灵活性和可扩展性。 在数据验证和转换方面,高级用法提供了更精细和准确的控制&#…

SqlServer: LAG等开窗函数应用

原贴: https://bbs.csdn.net/topics/619167074 https://learn.microsoft.com/zh-cn/sql/t-sql/functions/lag-transact-sql?viewsql-server-ver16 CREATE TABLE #kcb(xlh INT,shul INT,ftshl INT ) INSERT INTO #kcb(xlh,shul,ftshl) SELECT 1,20…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 中文分词模拟器(200分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线…

python基础语法 007 文件操作-2文件支持模式文件的内置函数

1.3 文件支持的模式 模式含义ropen a file for reading(default)wopen a file for writing,creates a new file if it does not exist or truncates the file if it exists x open a file foe exclusive creation. if the file already exists, the operation fails.独创模式&…

Redis中的哨兵(Sentinel)

上篇文章我们讲述了Redis中的主从复制(Redis分布式系统中的主从复制-CSDN博客),本篇文章针对主从复制中的问题引出Redis中的哨兵,希望本篇文章会对你有所帮助。 文章目录 一、引入哨兵机制 二、基本概念 三、主从复制的问题 四、哨…

tensorflow keras Model.fit returning: ValueError: Unrecognized data type

题意:TensorFlow Keras 的 Model.fit 方法返回了一个 ValueError,提示数据类型无法识别 问题背景: Im trying to train a keras model with 2 inputs: an image part thats a tf.data.Dataset and a nor mal part represented by a pd.DataF…

Python游戏制作-开心消消乐游戏

制作一个类似“开心消消乐”的消除游戏在Python中是一个相对复杂的项目,因为它涉及到多个游戏机制,如元素匹配、消除动画、游戏界面设计、关卡管理以及用户交互等。 步骤 1: 定义游戏结构和元素 首先,你需要定义游戏的基本元素,…

一文读懂HTTPS⭐揭秘加密传输背后的原理与Nginx配置攻略

一文读懂HTTPS⭐揭秘加密传输背后的原理与Nginx配置攻略 HTTP协议使用明文传输,不能保证安全性,而使用HTTPS却能够保证传输安全 为什么HTTPS能够保证传输安全呢? HTTPS在HTTP的基础上除了要进行TCP三次握手,还会进行TLS的四次握…