大明1805
作者:王子虚 | 分类:历史 | 字数:267.8万
本书由零点看书签约发行,版权所有侵权必究
第四九五章 大明式的计算机底层概念
朱靖垣下达了正式的命令,相关人员立刻起身领命:
“臣等遵旨。”
朱靖垣抬手示意,让他们都坐回去,然后继续问新的问题:
“说到要收集数据做计算,现在钦天监、工部、军械部,你们的计算机够不够用?”
齐彦槐马上回应说:
“感谢陛下关心,钦天监搬迁完成后,也同步启用了最新的三型通用硅晶计算机器。
“单机计算力达到了每秒一百万次,应该能够满足钦天监目前的计算需求了。”
新任的工部尚书汪来也紧随其后的补充说:
“托陛下的洪福,大明的硅晶计算机在这十年突飞勐进。
“应天新都城设计建设的过程中,同步部署了工部研发完成的三型通用硅晶计算机器。
“包括钦天监、工部、军械部、都督府、皇家银行、大明银行在内。
“对计算力有比较强的需求的部门和机构的办公区,都部署了每秒百万次的计算机。
“其他机构也有了相同构架,算力略低的同系列型号。”
朱靖垣从两人的回答中听到了两个关键词。
每秒一百万次容易理解,这是前世美利坚六十年代初计算机水平。
至于通用计算机,也就是使用统一构架,可以使用相同的程序,并可以拓展存储空间和外接设备的计算机。
朱靖垣前世用过的计算机基本都是通用计算机。
这种让后人习以为常的东西,在计算机出现的最早期,是很多人难以想象的东西。
最早的计算机几乎所有设备都是专用的。
两台计算机之间的差距,就好像后世的台式电脑和手机之间的差距一样。
真正的通用计算机,也是在六十年代初期出现的。
IBM公司在1965年正式公开销售的system 360系列计算机。
正是这第一套通用计算机,留下了每个字节八个比特的计算机底层惯例。
朱靖垣在十年以前,就给大明的计算机项目列了一大堆目标。
这些目标同时也是指导,直接提供了经过验证的发展方向。
电子管计算机,大明只发展了两代验证机,根本没有大规模推广,就没有继续制造了。
按照朱靖垣的建议,直接钻进了晶体管的方向,并且直接朝着通用计算机前进。
大明的工匠们努力攻关十二年,终于把这套东西做出来了。
朱靖垣在心中对比了一下前世计算机的发展脉络。
第一台公开的大型计算机埃尼阿克在1946年诞生。
第一台纯晶体管计算机崔迪克在1954年诞生。
第一套通用计算机在1965年公开销售。
在自己的直接推动下,大明用了十二年的时间,走完了前世美国人十九年的路。
计算机的技术的发展速度加快了一半,时间缩短了三分之一。
朱靖垣当初是给了方向,后续几年也陆续给了一些指导。
但是在登基前的这几年,朱靖垣没有持续关注,现在对他们的最新进展也感兴趣。
于是朱靖垣直接站了起来:
“好,汪工、齐工,你们两位带我去看看,今天的会议就到这里吧。”
周围的众人再次一起起身行礼。
汪来和齐彦槐快步出列,少傅、司空两个九卿也紧随其后。
一行人在齐彦槐的引领下去了钦天监的机房。
到了门口的时候,齐彦槐伸手推开房门,然后马上让开一边。
朱靖垣看到了机房内的景象。
大明当初的第一台计算机“道”,是用电子管为核心组装的,当时占满了一整个大厅。
现在的这台“三型通用硅晶计算机器”作为晶体管计算机,体积明显小了一大截。
现在只剩下了一个占满了一面墙的大型机柜了。
机柜侧面是一个大型操作台,上面放着一台看上去好像前世的老式电视的东西。
电视前面的台子上是几排规整的按键。
它已经有了显示器和键盘!
周围还连接着电传打印机、传真机、打孔机等外置设备。
房间里面本来有几个人正在使用计算机。
收到皇帝要过来的消息,都提前站在了计算机两侧等待,看到皇帝马上行礼。
朱靖垣挥手示意,然后径直走到了操作台前。
桌子上的键盘,就是自己当初设计的打字机用的那个键盘。
不过比打字机键盘更加复杂了。
除了五十六个打字键,周围又加了一些功能和符号键,总共估计有一百个左右。
键盘的旁边还放着几份文件。
有图表和文字说明,显然是准备用于计算的数据。
而那台好像老式电视的显示器上面,现在还显示着一些文字。
就是自己日常用的汉字,加上世祖皇帝推行的句读符号系统,以及一些夹杂其中的空位。
每一个字自己都认识,但是放在一起就看不懂了。
乍一看好像是乱码。
仔细看的话,还能发现一些规律,似乎是用特定的单字和数字,组合表示特定的逻辑。
第四九五章 大明式的计算机底层概念
好像是某种程序语言。
只是把英文字母和数字都换成了汉字。
眼前的这一幕,这又让朱靖垣确认了两项重要信息。
这台计算机是能够直接显示汉字的。
更重要的是,他们用的程序语言,至少已经是汇编语言的级别了。
甚至可能是早期的高级语言了。
朱靖垣前世不是程序员,对编程用的程序语言也不是很懂,只是上学的时候在公共课上了解过基本的知识。
知道变电脑用的程序语言,大体上可以分成三个大层级。
机器语言,汇编语言,高级语言。
越往前的越接近机器语言,越往后的越接近人类语言。
越往前的语言编制的程序性能越高,因为可以直接输入机器,直接进行物理层面的运算。
但是能够执行的命令也越简单,想要实现复杂功能的难度越高。
越往后的语言编制的程序性能越低,因为要经过读取和翻译,转化成机器语言之后再去运行。
不过能够执行命可以更加复杂,实现复杂功能的难度也越低。
在自己的前世,所有正儿八经的计算机程序语言,在最底层都是用英文表示的。
有少数程序可以在表层显示汉字,但完全不成气候。
其实程序语言不是不能使用汉字,因为早期程序语言本质上不是人类语言。
里面的那些英文字母本质上都是逻辑和定义符号。
用数字甚至星星框框表示一样可以。
只要程序员能够记住,每个图像代表的是什么指令。
之所以都是英文而没有汉字,是因为早期程序员都用英文,所以用英文去记录和表示命令。
这种传统就形成了限制铁轨宽度的马屁股。
最先建设铁路的英国人,选择的铁轨宽度是正好容纳两匹马行走的宽度。
这个与火车并没有直接关系的数据,成了后世的标准铁轨宽度。
计算机语言也是一样。
计算机的基础是晶体管,每一个晶体管可以看做是一组灯泡和开关。
关和开的这两种状态,可以参考灯泡是否亮起的状态。
用二进制数来表示,就是0和1。
在大明的计算机器相关的研究中,工匠们习惯用阴和阳来代指。
每一个晶体管的两个状态,能够表达的两个数字,在前世被称为一个“比特”。
在大明被称为一个“数”,或者“爻(yáo)”。
爻就是传统八卦符号中那些中断和连接的横线的统称。
一整条连续的横线是阳爻,中间断开的横线是阴爻。
开和关的意义,阴与阳的象征,断开与连接与执行,三者的意味天然趋同。
对大明的工匠们而言,这种命名都是理所当然的选择。
人向机器传递的所有指令,想要被机器所识别并执行,都要转化成一连串的开关命令。
计算机里面的开关太多了,人们为了方便管理和使用,就将其分成一个个的小组。
前世最早的计算机是四个一组,最后的通用计算机是八个一组。
这样四个到八个一组开关的开关命令的长度,在后世就被称为一个“字节”。
在大明被称为一个“字”或者“卦”,就是八卦的卦。
机器语言,就是直接输入开和关两种信号,可以想象对零和一两个键反复不断地按。
实际上使用打空纸带来执行的,用一个位置是否有空洞来表示开和关。
对二进制机器而言,他只能理解开和关。
比如说一组电路或者一项控制功能,在四爻(四位)机器上执行的方式是“关关关开”。
这个命令在机器看来,名字和意义就是“关关关开”,没有什么别的附加意义。
但是在人类视角下,“关关关开”只是一个编号,单纯看这个容易混乱。
于是人类根据自己的设计思路,知道这个编号所代表的逻辑功能,用自己使用的人类语言中应该用什么词汇来描述。
美国人在自己的脑子和小本本里面,记下“addition=关关关开”。
大明人在小本本上写下了“加=阴阴阴阳”,或者是画上三阴一阳的爻线。
无论是addition还是加,都只是人类方便自己记忆的“备注”
在机器里面实际上都是在干“关关关开”的活儿。
要控制计算机,就要直接去控制四个开关,组成“关关关开”的效果。
最后计算机算完的数据,也用纸带上对应位置的空洞顺序,来表示一串的开和关。
人类再把这些有规律的开关,翻译城人类能够理解的语言。
最早期的计算机,是与人类语言完全没有关系的,就看使用者怎么去命名和解读。
但是这样实在太麻烦了。
如果能让计算机直接识别人类语言就好了。
关键是,为什么是我这个人类,把自己的话翻译成你这个机器的语言。
为什么不能是我说我们人类的语言,然后你这个机器自己去翻译成你们机器能理解的语言?
第四九五章 大明式的计算机底层概念
机器当然不知道怎么干。
于是人类给决定给机器做个翻译器,或者说转换器。
在翻译器上输入人类语言,翻译器给机器翻译成机器语言,再让机器去执行计算。
计算机算完之后输出,再让翻译器翻译成人类语言。
这个想法是非常好的,这其实也是所有程序语言的基本逻辑。
程序语言的最终目的,就是实现人类直接说法,让机器完全理解并完美执行。
只可惜啊,别说完全听懂人话并完美执行了,单纯的让机器直接执行最基本的命令,都让最早的研究人员们费老劲了。
翻译器怎么才能把addition翻译成一连串的开关呢?
怎么让机器知道“加”是什么意思呢?
看上去,好像只要做一个表格,左边一列写addition或者加,右边写“关关关开”。
告诉机器,我输入addition或者加,你就去给我执行“关关关开”。
然而更进一步的问题是,怎么“输入”addition或者加。
输入法这个东西,在后世看来很常见的东西,在早期电脑上绝对是黑科技。
就算是看上去能够按键直出的英文字母,也要去干一个物理按键绑定字母表的活儿。,
否则机器不知道a是啥,c又是啥,根本没有b数。
所以要再做一个表格,把一个开关序列绑定a,一个开关序列绑定b,一个开关序列绑定c……二十六个字母和标点符号数字都做好。
再再做一个表格,把这些开关序列绑定键盘上的按键,并在按键上写上a、b、c……
我依次按下写着addition这几字母的按键,计算机收到按键对应的信号去查表。
找到了关关开关、关关开开、关关关关……等一连串的开关命令。
如果是英文系统,这时候就在屏幕上依次显示addition几个字母。
同时,这关关开关、关关开开、关关关关……这一连串命令,按照顺序组合起来,就对应另一个命令“关关关开”。
如果是汉字系统,这时候在屏幕上显示“加”。
最后,计算机去执行最后的“关关关开“命令。
输入英文是一个相同表格有几个字母循环查几遍,汉字是设计两到四层嵌套的表格逐次查一遍。
做到这些就已经非常困难了。
甚至于,对早期计算机性能都有了一定的要求……
最早的计算机字节长度是四位的。
一个二进制位可以记录两个编号,字节长度为四的话,最多可以记录二的四次方,也就是总共十六个编号。
这甚至不能容纳所有的英文字母。
要记录所有字母,至少要把字节长度增加到五,这样编码容量增加到了三十二。
可以容纳所有的字母,再加上几个常用的符号。
但是还不能同时单独输入数字,用纯英文单词去拼数字就太恶心了。
于是又把字节长度增加到六位,编码容量增加到了六十四。
这就能够容纳字母、数字、常见符号了。
所以六位的计算机,甚至于在计算机出现之前,就在打孔卡上用了很久了。
但是六位的情况下,字母只能有大写或者小写一种。
汇编语言也全部都是大写字母。
如果用来输出文字的话,全篇大写字母看着也是很头疼。
所以就继续增加到七位数。
这样就有了总共一百二十八个的编码容量,对于英语而言基本圆满了。
能表达所有大小写字母、主要符号、十个数字。
以及换行、回车、删除等常用的输入控制命令。
美利坚制定的ASCII标准就是七位编码。
后世的通用计算机字节长度是八位,因为IBM设计的第一套通用计算机,在七位的基础上增加了一位校验码。
后来随着技术提升,校验码被省略,八位编码的容量就增加到了二百五十六个了。
相比最初的计算机,字节长度已经翻倍了。
这还只是英文,如果要记录汉字的话,难度就进一步飙升了。
现在大明通行的《通用标准汉字表》就有八千个字。
一个字卦长度至少要增加到十三爻,有八千一百九十二的容量才能容纳。
字卦长度要增加到十五爻,有三万两千七百六十八的容量,才能整个《大明标准汉字总表》的所有汉字。
现在的生产工艺级别较低,还要参考IBM的做法,价格校验位。
这样字节长度就增加到了十六爻。
与此同时,三万多个十六位字卦,编码总容量已经达到了爻,折合前世的65KB。
这对于早期的计算机而言,是一个非常大的数字。
更关键的是,这只是汉字编号。
如果把汉字当做是一个个的人,这个表格相当于所有他们所有人的地址表。
要让汉字在屏幕上显示,还要把汉字做成点阵图像。
按照前世的经验,要让汉字显示的相对自然,要用十六乘以十六的点阵。
一个点阵的开关也要用一个字卦控制。
十六乘以十六就是256个字卦,个汉字合计字卦,折合前世的16MB。
当时的大部分硬盘都装不下,更别说内存了。
要让汉字勉强完整显示,不缺少笔画,也要十二乘以十二的点阵。
这样总共也要9MB。
就算是只记录通用汉字表,也需要2.25MB。
七十年代以前的电脑,装下这个东西是非常吃力的。
再次基础上,这也还只是点阵字库。
要通过键盘把汉字打出来,输入到电脑里面去,还需要一个输入法程序。
用于按照人类能够理解的逻辑,通过特定的按键组合,把想要的汉字从字库中筛选出来。
这个过程跟英文打单词是一样的,区别只是一个字母一个字母的显示,最后组合起来形成命令。
还是依次打完特定的组合的按键,组合形成成命令的同时显示出目标汉字。
如果不涉及到高级的联想功能,用高度机械死板的输入法,限定死只能用哪些汉字,就是这样的逻辑。
不过,点阵数据还可以放在硬盘上,字表和输入法就要载入内存了。
当时的超级计算机内存也只有100KB出头的样子。
这对当时的计算机而言是一个巨大的挑战。
要先运行输入法程序,从字表中筛查出要输入的汉字,再去硬盘查点阵图输出到屏幕。
就算是不惜成本,将字库输入法都所有功能都实现出来了。
这台电脑多半也会出现打一个字就要等好几秒的状态。
所以,朱靖垣现在看到电脑屏幕上有汉字,就知道工部绝对没有把汉字全做进计算机。
因为现在的电脑也不需要将所有汉字输入进去。
这时候的计算机就不是用来处理文字的。
英文编程也不会把addition打完整,那这一个单词就需要64B的空间来容纳。
一段代码打上几十个单词,就要占用KB级别的内存了,英文系统同样撑不住。
肯定要能省就省的,直接写个ADD就行了。
反正电脑不是处理文字的,当时的命令也只有几十个,单词都用简写也不会认错。
汉字肯定是这么处理的,也只能这么处理。
朱靖垣怀疑,这台电脑只能显示一两百,甚至几十个汉字。
很可能是一个按键固定出一个字,一个对应一个固定的程序命令,剩下的就都是标点符号和数字了。
符号系统也不会存在什么全角半角的区别,输入过程也不需要转换输入法。
如果是这样的话,汉字汇编反而比英文更简单。
因为单个汉字就有英文单词的作用,特别是在传统文言文仍然盛行的时代。
朱靖垣眼前屏幕上的程序中的命令,确实全都是一个一个的单字。
英文环境下单个字母很少有实际意义,至少要用两个到三个字母,才能让程序员产生有实际含义的联想。
同时,眼前这个屏幕肯定是非常“高级”的功能。
低级型号的电脑,很可能根本没有屏幕。
因为屏幕上显示汉字和字母,哪怕是只有几十个,也非常浪费存储空间。
早期的英文电脑同样是没有屏幕的。
操作员都是盲打的。
至于完整的八千个汉字,只能等下一代的电脑,把集成电路做出来再说了。