当前位置:首页 > 灵芝
16位位宽的新型计算机IO模型的设想

来源:搜你想要的 点击数: 时间:03-16

跟chatgpt的交流结果。确实牛逼。

?

500

2022.1.11 补充

经与若干朋友的讨论,我再尝试着提炼一下观点。

计算机系统,是人要操作的工具。这个工具需要执行人的指令,需要按照人的指令,进行操作,操作的对象,是数据。在计算机体系内部流转的,就是操作指令和数据,这二者都是以一串二进制码的线性序列存在的。

人要操作计算机,就需要首先在计算机内部设定好指令规则和数据规则,由人按照计算机系统固化的指令规则和数据规则,向计算机系统输出(计算机系统输入)指令和数据。数据好说,就是一个映射关系的集合,但是“指令规则”,却是大有文章。

目前的计算机系统,人机之间的最根本的直接交流渠道,就是i8042/i8048,这个渠道最多只能传输256个符号,目前只用来传输128个符号,只用了其中的83个符号做人机交互信息的基本介质。

对于数据来说,多少个符号都无所谓,哪怕只有俩符号也可以,只要足够长,什么数据都可以表达,而且对于计算机系统而言,数据是什么意思根本没有意义,它只是按照指令加工数据再呈现出来而已。但是指令可不一样,指令是对计算机系统的操作和控制,要求计算机系统能够根据接收到的指令码进行相应的操作和动作。指令码得能够触发事先设定的相应操作。

那么问题就来了,计算机系统需要执行的操作类型,显然远超83个、256个,那么只有83个符号可以用来分别描述操作码,显然只能基于83个符号的排列组合。而要在一串字符和一个操作码之间建立映射关系,显然跟一个符号(即一个输入动作)映射一个操作码有关键性的不同,因为对计算机系统而言,面临的只有一种操作——输入,要在同样的输入动作中将若干次的符号输入串联起来区别于其它符号输入以关联自己的既有操作,就需要一个在一对一的直接映射体系中不需要的步骤——编译,用以将线性输入的字符串分割、区别开,从中摘出一个个的关键字的字符串,再对应计算机系统的指令。这个映射关系,只能由一个复杂的“编译软件”加以实现。

而如果一个人的输入计算机系统的动作就可以映射一个计算机系统的操作动作,那么这个映射关系将极为简单,那是一个直观的、可无条件复现的直接对应关系。那么,软件将根本不用区分“源文件”和“可执行文件”,源文件直接可执行,可执行文件直接可见。

这就是我的设想。

====================================

2022.1.10 补充

我就再提醒一下。若干观众朋友们渴望否定我的这个设想的心情我能理解,但是劝你们还是不要从否定我的这个想法的存在的角度入手。一个东西的存在,特别是一个已经存在的东西的存在本身,是没法否定的。否定,只能是明确要否定对象的内在不自洽,而不是企图从物理层面上毁灭、包括让人家“自愿”的自行从物理层面毁灭。在“意识”、“想法”层面,你就是把这意识、想法的物理载体毁灭了,比如这观察者网上的文字,那我这意识和想法以及在其他人那里激发的新的意识和想法,都仍然存在呀。

我欢迎任何人指出我的这个设想当中的错误之处,这也只是个想法而已。要劳民伤财徒劳无功,无论是否,那都得是进入实现阶段的事情,在当下,还不涉及。

===================================

2022.1.8 补充。

快一年了,这又被翻出来了,我也是深感荣幸。又蒙数位有丰富编程经验的行业精英赐教,我就再设法总结一下我这个设想的关键部分,希望能帮助他们找准问题关键。

目前所有的计算机体系当中的所有信息,在最底层的物理层面,只有128个符号(把不可描述符号也都算上了)形式可用,因为包括了人在其中的计算机系统所需要用到的指令数量远超了128,因此所有的信息,包括数据和指令,都必须使用这128个符号形式的排列组合进行描述和表达,而计算机体系要“理解”这些基于128个符号的排列组合的形式所要描述和表达的信息,特别是指令信息,必须基于同样是这128个符号形式的排列组合描述之后的“运行环境”进行。

我的设想就是,让计算机系统可用的最底层物理层面可用的符号形式,达到2的16次方级别。那么就不需要使用符号形式的排列组合了。而不需要排列组合,那么就不需要为识别这些排列组合而设定的程序环境,单一符号形式可以直接对应计算机可用的指令码。

好,我尽力了。

===================================

写在最前面的话。

我的这篇文章,好像有点火的样子呢,这个数据也是有趣,到目前,评论179,收藏17,但是只有5个赞,有点迷呢。

然后,还有个迷的地方是,这评论区里莅临的这些居高临下颐指气使的卫道者们,到底是咋回事啊?我只不过是提了一个设想,还是个被期刊初审就扔回来的设想,是怎么惹动他们如涌泉一般的“驳论”文思的?主要是,他们到底在反驳啥?他们要否定的是啥?我这是触动了他们内心深处某个禁脔了?而且,他们好像不是要否定我的这个想法的内在机理的错误之处,而是想要否定这个想法本身。他们不主张我的这个想法何处不合理,而是主张我的这个想法“没有意义”、“没有用处”、“触犯了全世界最聪明的人的心智”(这个主张更是迷中迷啊,这都挨得着么),他们还在自己知道自己无法否定自己想要否定的东西的前提下,寄希望于“有掌握了《微机原理》(《单片机原理》)的大拿替他否定他自己无法否定却想要否定的对象”,……,都让我想起了曾经遇到过的若干亚伯拉罕诸教、佛教的教徒们,口称“我学经不精,你去找专业人士/高僧大德必然会放弃你的想法”。啧啧,还真是殊途同归的同志们呢。

其实,我就提出了一个想法,对您没有意义,您看个乐就完,若对您有或积极或消极的启发,那您有数就得,怎么非得在显然不知道我说的是啥的前提下,强行秀优越、刷地位、居高临下颐指气使呢?这是对自己的脸皮质量多有自信呀。

人呀,要明心见性。你说你心里如果有那么敏感的一处禁脔,那你最好看仔细了那到底是啥。是不是“不与西方既有存在保持一致就是大逆不道”啊?

===================================

想给期刊投稿来着,结果被退了,估计是不符合论文规范?也懒得找“专业人士”改了,反正是个想法,我也没有条件去实现,就放在这里吧,看看能否给谁带去点启发。

写在前面的话。

如果朋友你不知道我的下面两句话在说啥,那还是先不要在这里发表意见了。谢谢了。

现在的计算机系统,其内在信息的流动和运算的物理基础是ASCII码,ASCII码是现行计算机体系的信息规范的边界。这与CPU的“位数”无关。我的这个想法,就是要破除这个边界。

再补充一句。评论区里很多人都联系到了汉语输入法和“原生的、直接的英语”输入法,我觉得他们在无意或有意中找到了关键。我设想的这个体系相对于现有体系的优势,就正比于汉语相对于英语或任何一种拼音语言的语言优势。

不理解我上面两句话说的是啥的朋友,你们应该都对计算机的“IO”有“深刻理解”,那么请问,你所知的计算机体系,为啥要一个字母一个字母的扫描,然后拼成你能“看懂”的“指令字符串”,然后再由“软件”转化成“计算机二进制码”呢?计算机直接扫描出有具体意涵的“码”,你也知道那个码是啥意思,计算机也能直接按照那个码做出相应的执行动作,不好吗?

网友们的回复热情令我感动,不过你们一个个的扔书名、充大辈的德行委实无聊,于你于我皆无益用。这样,我给你们找件事情做,省得这般无聊。其实我的设想很简单,就是将i8042和i8048的寄存器位数扩充至16位。然后,你们可以发挥你们的想象力,想象一下可以形成一个什么样的计算机体系。

计算机系统是人所用的工具,由人输入信息和数据,通过计算机的既定的软硬件逻辑模块输出特定的结果。任何一个“计算”过程,都包括这个输入-输出的动作,而且这个输入输出的动作,不仅存在于整个运算过程的起始和结果阶段,在运算过程当中,所有的信息交互也都可以看做一个输入-输出的动作。比如说,我们在C编程环境的源文件中输入一个字符串“define”,这个字符串我们在键盘上敲击六次,首先通过键盘i8048芯片的扫描和解码,生成六个8位的扫描码,这六个扫描码会发送到主板上的i8042芯片,供CPU读取,然后调取到显卡的一个字库表,把这六个字符的点阵投送到显示器上,并且这六个连续的扫描码共48位,会在源文件中被记录下来,然后在编译的过程中被转化为一个程序的机器码。

如果我们把计算机硬件体系看做一个有既定的语言能力的自主意志,把我们的输入看做它的“理解”,那么本质上,IBM兼容机只能理解83个PC/XT的PC扫描码,所有已知的计算机,无论计算能力有多高,其本质上都是只能理解百量级的扫描码。输入计算机的所有指令和数据元素,所有的人机交互动作,都需要由软件系统基于这些扫描码进行转换、映射。这是一个极为低效的人机交互形式。

本质上,这个逻辑是衍生自拼音语言的文字表达逻辑,拼音就是用“简单”的字母符号,按照线性排列方式,拼成字符串表达语义。但是实际上,拼音语言的文字形式表达的是“音”,而不是“义”。作为基本元素的“字母”,根本就没有“义”,所以根本没法承载语义交流的功能。

何谓文字之“义”?义,就是文字形式所确定对应的现实现象或具体行为。文字形式本身没有意义,其关联和指向的现实现象和具体行为,才是文字的意义所在。

两个主体之间的意识交流,需要有共同的“形式-意涵”对应关系表,才能通过共同的形式,检索到共同认知的语义内涵,从而进行意识的交流。人际之间,可以通过各自记忆的、复杂的、共同的、语音与语义的对应关系或者字符与语义的对应关系基于语音或字符信息进行语义交流。

对于计算机而言,它作为工具,需要体现的是具体行为,或者说动作,对于工具使用者而言,就是“操作”。计算机需要将接受的操作之文字识别出来,对应相应的操作动作,并执行之。

但是计算机硬件体系只能“记忆”如此少量的“语言形式”。计算机体系中用到的所有的应用程序指令和符号的数量,必然要远大于83,所以为了准确表达出这些指令和符号,就必然需要用这些基本的键位或者说扫描码进行排列组合。这极大浪费了计算机体系的能力,也为整个计算机体系的运作徒增了若干不必要的转换和映射过程。本质上,这是“拼音语言”的语义逻辑。拼音语言中,只有确定的无意义的符号,其确定之“义”,需要每一次都由人自行填充至无意义的符号的排列当中。就是说,对于拼音语言使用者而言,没有直接、确定的文字-意涵的关联,其文字-意涵的关联,都是每一个人在每一次表达当中的单向自由心证。本质上说,拼音语言是没法用于高效的平等交流的,因为拼音语言很难在交流者之间作为共同的认知基础。而他们这种表达惯性,也体现在了计算机体系的设计当中。他们设计的计算机体系,计算机没法对接受的信息直接进行“解读”,获得相对应的“意涵”,映射到自己的具体操作;操作者输出的信息,也只能以无意涵的单个字符为基本单位,由计算机再通过一层软件层面的映射,映射到自己的具体操作。这个输入输出过程,与拼音语言的交流过程一样,非常低效。

因此,我设想了一套新的计算机IO架构,必然极大减少计算机软件的编写、编译、运行过程中的IO交互次数,必然极大提高计算机体系的运行效率。

这套规则的主要宗旨,是扩充计算机硬件的扫描码表,从百量级,提升到万量级。二进制的16位数,就可以有65536个扫描码,这个数量,足够容纳所有计算机软件的指令关键字和数据元素。包括所有的汉字。比如上面说的“define”,在现在的计算机体系里,输入的扫描码共有48位二进制数位,但是在唯一的扫描码表里,只需要一个16位的扫描码。这个扫描码,可以对应扫描码表中的“定”符号;“select”,可以对应“选”;“jump”可以对应“至”;等等。其实,每一种程序语言,都可以直接使用一些特定的字符(而非字符串)表示关键字,比如使用古希腊字母ɑ表示“定义”或“赋值”或“update”、“select”,使用字符串,是为了便于记忆和交流协作,但是显然,在这种新型的IO架构中,直接使用自有独立意涵的“汉字”作为关键字,远比现有IO架构不得不使用字符串来承载特定意涵要高效得多。

而且所有的“编程语言”,关键字其实基本上是一致的,那么在这种IO规则之下,其“源代码”可以直接使用键盘的输入,编译程序可以得到极大简化,甚至可以直接取消编译环节,代码本身就可以直接转化为指令码和数据码,实现真正的“所见即所运行”。即,我可以直接输入一个“选”,这个符号在计算机中对应的16位码,计算机可以直接用作我们现在所用的“select”这个指令所对应的指令码。这种机制之下,程序是可以平台无关的。所有的记录、传输,都可以以“明文”为对象,其程序逻辑是记录在明文当中,具体实现时再由物理层面的码表转换。这样,机器内部的码表对应关系,还可以不断优化,不同的计算机体系,可以使用自己定制的对应码表。

能够“记忆”这样一个统一的扫描码表的计算机体系,与人的表达形式能够高效的直接映射,必然会极大提高人机交互的效率。而这种交互,也要求人类所使用的所有文字符号体系能够对应这个扫描码表。在已知的人类所使用的文字、符号的基本单元体系中,除了全人类共用的阿拉伯数字、四则运算符号、标点符号,再就有拼音文字所用的“字母”,这些符号的数量加起来也不必超过65536,16位长的二进制代码完全可以覆盖其地址空间。整个地址空间不过是128KB。

目前,Unicode在软件层面上包含了“所有”的人类使用的符号,但是Unicode码没有内在的关联性,码与码之间没有相通性。而码字所承载的语义之间可能有的相通之处,可以在二进制代码上有一定的体现。比如具有同样偏旁部首的汉字,应该有一段相同的同位置代码,如果这个偏旁部首还是个独立汉字,那么这个汉字应该对应特殊的能够凸显这段代码的二进制代码。

扫描码表所对应的符号的屏幕点阵,汉字是16*16,其它单纯的字母、符号,8*16点阵即可。而且,字符点阵与扫描码应该也能形成确定的对应关系。在所有字符点阵图当中,取16个相同位置点阵的值组成扫描码,应该存在某种取值方式,让每一个扫描码都是唯一的。

当然,需要解决一个问题,就是键盘的编码能力。扫描码需要由键盘输出,受手的活动范围的限制,键盘的键位,不能太过繁杂。现在的通用键盘,除了功能键和数字键盘键位,主要是通过46个键位形成扫描码的。加上功能键,键盘键位也在100个左右。在纯粹的机械电路模式下,这个数量级的键位,正好匹配ASCII扫描码的数量。那么,要通过输出6万级别的扫描码,显然不可能通过设置数万个键位来实现。其实解决方案也很容易,无非就是把汉字输入法固化到集成电路里,键盘集成输入法集成电路芯片和一个液晶屏。

由于这个字符集当中,有独立意涵的汉字会占大部分空间,因此键位设计要以汉字输入为基础,兼容“英文”输入。汉字本质是一种形码,因此可以选择一种中文形码输入法的键位设计逻辑作为基本架构,比如,王林快码的键位设计,比较合乎汉字字形的规律,要比五笔更直观。使用这种架构的键盘,配合着液晶显示屏,按照形码的输入逻辑,应该能够实现敲击三次最多不超过四次按键就能输出一个字符。当然,这种键盘完全可以使用拼音输入法,甚至键位设计直接使用现在的qwert键盘也可以,但是这种输入效率,应该会低于形码键盘。

如果这种架构得以实现,我希望命名为“文书”,文、书,《说文解字序》中记载:“仓颉之初作,盖依类象形,故谓之;其后形声相益,即谓之字。”

广告推介

最新发布

图文信息

最新视频

热门事件

资源共享