Сетунь的24条单播指令

1、Setun模拟器概述

        真的,想搞懂一台电脑是怎么运行的,那就搞懂它的指今集是怎么跑的,感觉很离了个大谱的,先看由铁氧体磁芯上的器件组成的RAM,容量为162个9-trit单元,即每个单元为9-trit,每页有54个单元,共有3页,地址和值可以用三进制和九位代码两种格式表示,这个可以看出它大概是怎么存储信息的,然后没了,接着找到了一个网页版的“Setun”模拟器,如下图所示:

        感觉跟原版的图片差不多,这个作者还是很厉害的,不仅搞出Setun模拟器,还有进制转换器,可将数字转换为二进制、三进制、八进制、九重码、十进制、十六进制;DSSP会话式结构化编程系统;三进制模拟时钟,可以用来看时间;三元简约码霍夫曼算法编码器,可将输入信息编码成二进制和三元代码树;三进制和九种数字系统的年历,可以看日期。


 2、Setun模拟器指令集

        当然有了Setun模拟器,它的作者肯定是搞懂了Setun的24条单播命令,这是它的操作码,也就是计算的的指令集,只是它是初始阶段没有那么的复杂,找到它的说明书,照着复制翻译下来就行了,如下图所示:

        九位代码也是一种表示方法,即九重码,它对平衡三进制的信息进行了编码操作,从而简化了输入,可以看上图绿色对照表,它的2位平衡三进制数表示为1位九重码,也就是说,最少的24个单播指令集用了3个Trit,而命令由9位三进制数字(存储单元为9-Trit)表示,最高5位为地址部分,3位为操作码(单播指令集),最低位1位作为地址修改的标志。

        然后操作这台Setun三进制电脑,就是不断的的输入与输出9位三进制数字,但它的的输入输出要看懂还是很麻烦的,所以有了上述九重码的表示方法,即3表示为+0、-3(x)表示为-0,上述图中,它是忽略了最后一位,然后5位九重码可以表示10位平衡三进制数,其中最高位的0被忽略,输入后面的九位,也就是一条指今,如下表格所示:

九重码平衡三进制数
112x40+0++--0++
zwwy30------++0
0110x000+0+00-0

        即然,有了九重码这种编码方式,那就可以理解五位纸打孔带是怎么输入的了,输入输出字符有可能就是上述的九重码的数字(0—4)与字母字符(w, x, y, z),跟acsii码一样,一行的孔表示一个字符,然后再用某一种组合来当分隔符,这思想确实很超前了,五位纸打孔带中间的小孔是对照孔,可以让机器很清楚知道读取到那了,如下图所示:

        当然,上述的九重码与五位纸打孔带的对应关系,并不知道清楚,毕竟过了那么久了,但确实是可以编码出来的,其实除了用纸带来存储信息,那时最多用的就是磁鼓,而Setun的主存储器也是一个磁鼓存储设备(DRAM),用于与分页内存组织交换特征(9-trites)的磁鼓,容量为36或72页(1944年9-trite单元),如下图所示:

照片来自喀山计算机科学博物馆

        当然Setun还有铁氧体三态存储器(FRAM),即三元铁氧体立方体,同时时期的还有磁环立方体存储器,如下图所示:

三元铁氧体立方体

一层磁环存储器
磁环立方体存储器

        当然那时没有晶体管,所以Setun用的是2个磁环,用磁化状态表示1位Trit,即2 位二进制编码三编码,用的是10(+)、11(0)、01(-)、00(?)还是10(+)、01(0)、00(-)、11(?)等方案,最终的结果不得而知,2个磁环可以表示或存储1位Trit,是Setun基础构建单位,如下图所示:

        然后多个累加在一起可以形成基本的运算单元等,如下图所示:

       


3、Setun模拟器

1、RAM(内存)

  • 仿真器中的 RAM 由三个存储体表示,每个存储体有 54 个单元。
  • 地址和值可以用三进制和九进制两种格式表示。
  • 原始Setun计算机中,有一个9位移位寄存器,能够将串行信息转换为并行信息进行存储,反之亦然。

2、寄存器

  • S寄存器:18位触发寄存器,具有左移和右移功能。在乘法操作中,S寄存器中的数字可以作为乘数或被乘数使用。可以从存储设备和移位计数器接收数字。
  • R寄存器:18位触发寄存器,用于乘法操作的控制。
  • F寄存器:五位修改寄存器。
  • C寄存器:五位命令地址寄存器。
  • K寄存器:九位命令寄存器,包含一个五位右移触发寄存器和四个操作码触发器,用于控制命令地址和执行操作。
  • w寄存器:控制条件跳转命令的执行。
  • MB寄存器:记录最后访问的磁鼓区域的地址。

3、输入设备

  • FT-1 和 FT-2:从穿孔磁带中读取数据的设备。

4、输出设备

  • EUM-46:部分实现的输出设备。
  • PL:输出设备。

5、控制面板

  • 初始启动:将FT-1设备中的打孔带数据加载到RAM中。
  • 启动:启动程序执行,如果启用“单周期模式”,则通过按下“单循环模式”按钮逐步执行程序。
  •  停止:终止程序执行。
  • 来自遥控器的命令:执行键入的命令。
  •  状态:显示操作结果。

### 模拟器操作指南

  • 初始启动:插入打孔带,按下启动按钮,将数据加载到RAM中。
  • 启动:按下“启动”按钮,程序开始执行。如果需要逐步调试程序,可以启用“单周期模式”。
  • 停止:按下“停止”按钮,程序执行中断。
  • 命令输入:通过遥控器键入命令,模拟器会执行相应的操作。
  • 状态显示:控制面板会显示当前的操作状态和结果。

        再看一下,使用24个单播指令进行简单的加法运算,利用三进制计算机的硬件和指令集,具体加法操作的流程如下:

1、加载操作数

  • 将要加的两个三进制数加载到寄存器中。操作数分别存储在寄存器 A 和 B 中。

2、加法运算

  • 加法操作会利用加法器对两个寄存器中的值进行逐位相加,并处理进位和借位。

3、存储结果

  • 将结果存储到目标寄存器中(例如,结果存储在 S寄存器中)。

示例指令序列:

  • 指令 1:03(00+),将操作数 A 加载到寄存器 A 中。
  • 指令 2:03(00+),将操作数 B 加载到寄存器 B 中。
  • 指令 3:33(+0+),执行 S=S+A,将 A 加到 S 中。
  • 指令 4:33(+0+),执行 S=S+B,将 B 加到 S 中。
  • 指令 5:S输出到指定位置,将S重置进行下一轮计算

        这24条单播最值的借鉴,就是这样的指令:(S)+(A*)=>(S)、(A*)+(S)(R)=>(S)、(S)+(A*)(R)=>(S),这样操作完后,数值又回到了自身,这对于连续的运算来说是有利的,只要知道地址可以对一个数进行多次加减乘除操作,然后操作完将操作数移交,自身清零进行下一次的计算,这种设计会大大提高效率,所以让它更现代化一点:

        如上图所示,图灵完备的设计可以直接般过来用,Setun定义的位为Trit,字节为Tryte,其中1Tryte=6Trit,但是工程上用的是9个Trit,所以参照图灵完备可得以下设计:

寄存器为9Trit:前3位表示寄存器的物理地址(地址符),后6位表示寄存器存储的值。

1、立即数模式

  • 前3位Trit组合中的一种,将后6位Trit输入到固定的寄存器中

2、算术模式

  • 前3位Trit组合中的一种,将后6位Trit分为两个3-Trit,前面的3-Trit表示地址符,后面的3-Trit表示要进行运算类型。
  • 它有个专属的S寄存器,可以给到地址,不断的累加计算。
  • 运算类型有加法、减法、乘法、除法等,要给到地址符,如加法(S)+(A*)=>(S),也就是将(A*)地址下寄存器的值与S寄存器值相加得到的结果,再送回S寄存器。
  • 运算类型还可以是重置运算符,如置零算术符,将S寄存器的值清零;立即数算术符,给到地址同时为立即数算术符,那么将地址下寄存器的值直接覆盖S寄存器的值。
  • 运算类型还可以是输出运算符,如输出置零运算符,当给到地址同时为输出置零运算符,那么会将输出运送到指定地址的寄存器,并将自身S寄存器的值清零。

3、复制模式

  • 前3位Trit组合中的一种,将后6位Trit分为两个3-Trit,前面的3-Trit表示源地址符,后面的3-Trit表示目标地址符。

4、条件跳转模式

  • 前3位Trit组合中的一种,将后6位Trit分为两个3-Trit,前面的3-Trit不使用,后面的3-Trit表示条件判断的跳转类型。

        RISC-V计算精简指令集ISA很有前景,也有人将RISC-V 架构应用到三进制计算setun的仿真中,采用汇编 RISC-V 语言的三进制机“SETUN”SETUN-1958 VM 的仿真器,同样的也有人将平衡三进制应用于大模型,即1 位 LLM 时代,所有大型语言模型的大小均为 1.58 位,是的时代属于你们。

参考资料:

1、https://www.trinary.su/projects/

2、Setun-1958 (Троичный компьютер "Сетунь") | VK

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

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

相关文章

学习嵌入式对于学历有要求吗?

学习嵌入式系统开发通常并不对学历有严格的要求,尤其是在技术行业中,实际的技能和经验往往比学历更为重要。我收集归类了一份嵌入式学习包,对于新手而言简直不要太棒,里面包括了新手各个时期的学习方向编程教学、问题视频讲解、毕…

Python中JSON处理技术的详解

引言 JSON(JavaScript Object Notation)作为当前最流行的数据传输格式,在Python中也有多种实现方式。由于JSON的跨平台性和简便易用性,它在数据交互中被广泛应用。本文将重点讨论如何熟练应用Python的JSON库,将JSON数…

Vagrant配合VirtualBox搭建虚拟机

目录 前言一、软件下载及安装1.下载2.安装扩展: 二、创建一个虚拟机1.Vagrant官方镜像仓库 三、使用远程工具连接虚拟机1.修改相关配置文件 四、虚拟机克隆及使用1.通用配置2.简单搭建一个java环境3.克隆虚拟机1.重命名虚拟机(可选)2.打包指定…

计算机视觉研究方向初学习,计算机视觉都有什么方向??!到底是干什么的?!

计算机视觉研究方向初学习,计算机视觉都有什么方向??!到底是干什么的?! 语义分割图像分类目标检测和定位实例分割、全景分割物体跟踪姿态估计人脸识别人体识别图像增强风格迁移图像生成视觉问答视频分析光学…

大话光学原理:4.散射:瑞利、拉曼、米氏和布里渊

这是一缕柔和的光,在空气的舞台上轻盈地跳跃。它悠然自得,在宁静的空间中缓缓前行。然而,一片细薄透明的介质挡住了它的脚步,它毫无预兆地撞上了这片障碍。在这短暂的接触中,它被分解成无数微小的粒子,被迫…

【总线】AXI第九课时:介绍AXI响应信号 (Response Signaling):RRESP和 BRESP

大家好,欢迎来到今天的总线学习时间!如果你对电子设计、特别是FPGA和SoC设计感兴趣,那你绝对不能错过我们今天的主角——AXI4总线。作为ARM公司AMBA总线家族中的佼佼者,AXI4以其高性能和高度可扩展性,成为了现代电子系统中不可或缺的通信桥梁…

Python | Leetcode Python题解之第226题翻转二叉树

题目: 题解: class Solution:def invertTree(self, root: TreeNode) -> TreeNode:if not root:return rootleft self.invertTree(root.left)right self.invertTree(root.right)root.left, root.right right, leftreturn root

NLP入门——卷积语言模型的搭建、训练与预测

语言模型建模是针对句子建模,主要分为掩码语言模型和自回归语言模型。 我们从corpus中截取一句话作为例子,这句话是bpe分词后的句子: 1994 年 5 月 17 日 安全 理事会 第 33 77 次 会议 通过 掩码语言模型的主要机制是:例如将33 7…

关于MySQL mvcc

innodb mvcc mvcc 多版本并发控制 在RR isolution 情况下 trx在启动的时候就拍了个快照。这个快照是基于整个数据库的。 其实这个快照并不是说拷贝整个数据库。并不是说要拷贝出这100个G的数据。 innodb里面每个trx有一个唯一的trxID 叫做trx id .在trx 开始的时候向innodb系…

「C++系列」C++ 修饰符类型

文章目录 一、C 修饰符类型1. 访问修饰符(Access Modifiers)2. 存储类修饰符(Storage Class Specifiers)3. 类型修饰符(Type Modifiers)4. 函数修饰符 二、C 修饰符类型-案例1. 访问修饰符案例2. 存储类修饰…

AI转绘_animatediff-cli-prompt-travel

这个工具有两种主要模式:它可以直接通过提示创建视频,或者它可以对现有视频进行风格化。还有方法可以提高视频的分辨率。 正如工具名称所示,它的一个主要特点是"提示旅行"。这意味着你可以例如使用特定的提示用于前20帧&#xff0…

个人标准流程管理系统

个人标准流程管理系统(Personal Standard Operating Procedure System, PSOPS)是一种帮助个人组织和优化日常任务、项目管理、学习计划和其他重复性活动的工具。它旨在提升个人效率,确保各项事务按照预设的标准流程执行。以下是设计这样一个系…

计算给定数字的阶乘

1 问题 计算给定数字的阶乘. 2 方法 使用while循环。使用for循环。使用函数。 通过实验、实践等证明提出的方法是有效的&#xff0c;是能够解决开头提出的问题。 代码清单 1 使用while循环numberint(input(请输入一个数字:))factorial1i1while i<number: factorialfactor…

PTrade常见问题系列6

执行k_start.sh脚本发现没有生成日志&#xff1f; 执行k_start.sh脚本发现没有生成日志&#xff1f; 1、检查k_start.sh脚本发现执行downloader前需要检查是否有已存在的downloader进程&#xff0c;ps -ef|grep downloader 发现有很多历史的僵尸进程&#xff0c;所以下载进程…

Mosh|内连接、外连接、左连接、右连接(未完)

下图取自菜鸟教程&#xff0c;侵权删&#xff5e; 一、内连接&#xff1a;Inner Joins 模版&#xff1a;SELECT * FROM A JOIN B ON 条件 含义&#xff1a;返回A与B的交集&#xff0c;列为AB列之和 练习&#xff1a;将order_items表和products表连接&#xff0c;返回产品id和…

鸿蒙语言基础类库:【@ohos.util (util工具函数)】

util工具函数 说明&#xff1a; 本模块首批接口从API version 7开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。开发前请熟悉鸿蒙开发指导文档&#xff1a;gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 该模块…

【论文阅读笔记】Meta 3D AssetGen

【论文阅读笔记】Meta 3D AssetGen: Text-to-Mesh Generation with High-Quality Geometry, Texture, and PBR Materials Info摘要引言创新点 相关工作T23D基于图片的3d 重建使用 PBR 材料的 3D 建模。 方法文本到图像:从文本中生成阴影和反照率图像Image-to-3D:基于pbr的大型重…

hdfs大规模数据存储底层原理详解(第31天)

系列文章目录 一、HDFS设计原理 二、HDFS系统架构 三、HDFS关键技术 四、HDFS应用实例 五、解决HDFS不能处理小文件详解问题 文章目录 系列文章目录前言一、设计原理二、系统架构三、关键技术四、应用实例五、解决HDFS不能处理小文件详解问题1. 合并小文件2. 优化Hive配置3. 使…

计算机的错误计算(二十六)

摘要 结合计算机的错误计算&#xff08;二十四&#xff09;中的 Maple 环境下的计算过程&#xff0c;&#xff08;二十五&#xff09;讨论了&#xff08;不&#xff09;停机问题。事实上&#xff0c;其它数学软件比如 Mathematica 也存在该问题。 &#xff08;不&#xff09;停…

操作系统:信号究竟是什么?如何产生?

OS信号 一、信号的概念二、信号的产生1&#xff09;终端按键产生信号1、 前台进程、后台进程2、验证终端按键是否产生信号 2&#xff09;调用系统函数向进程发信号3&#xff09;硬件异常产生信号1、浮点数溢出&#xff0c;CPU产生信号2 浮点数溢出&#xff0c;产生信号原理3. 空…