笔趣阁

繁体版 简体版
笔趣阁 > 大明1805 > 第四九五章 大明式的计算机底层概念

第四九五章 大明式的计算机底层概念

章节错误,点此举报(免注册),举报后维护人员会在两分钟内校正章节内容,请耐心等待,并刷新页面。

朱靖垣下达了正式的命令,相关人员立刻起身领命:

  “臣等遵旨。”

  朱靖垣抬手示意,让他们都坐回去,然后继续问新的问题:

  “说到要收集数据做计算,现在钦天监、工部、军械部,你们的计算机够不够用?”

  齐彦槐马上回应说:

  “感谢陛下关心,钦天监搬迁完成后,也同步启用了最新的三型通用硅晶计算机器。

  “单机计算力达到了每秒一百万次,应该能够满足钦天监目前的计算需求了。”

  新任的工部尚书汪莱也紧随其后的补充说:

  “托陛下的洪福,大明的硅晶计算机在这十年突飞猛进。

  “应天新都城设计建设的过程中,同步部署了工部研发完成的三型通用硅晶计算机器。

  “包括钦天监、工部、军械部、都督府、皇家银行、大明银行在内。

  “对计算力有比较强的需求的部门和机构的办公区,都部署了每秒百万次的计算机。

  “其他机构也有了相同构架,算力略低的同系列型号。”

  朱靖垣从两人的回答中听到了两个关键词。

  每秒一百万次容易理解,这是前世美利坚六十年代初计算机水平。

  至于通用计算机,也就是使用统一构架,可以使用相同的程序,并可以拓展存储空间和外接设备的计算机。

  朱靖垣前世用过的计算机基本都是通用计算机。

  这种让后人习以为常的东西,在计算机出现的最早期,是很多人难以想象的东西。

  最早的计算机几乎所有设备都是专用的。

  两台计算机之间的差距,就好像后世的台式电脑和手机之间的差距一样。

  真正的通用计算机,也是在六十年代初期出现的。

  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的做法,价格校验位。

  这样字节长度就增加到了十六爻。

  与此同时,三万多个十六位字卦,编码总容量已经达到了65536爻,折合前世的65KB。

  这对于早期的计算机而言,是一个非常大的数字。

  更关键的是,这只是汉字编号。

  如果把汉字当做是一个个的人,这个表格相当于所有他们所有人的地址表。

  要让汉字在屏幕上显示,还要把汉字做成点阵图像。

  按照前世的经验,要让汉字显示的相对自然,要用十六乘以十六的点阵。

  一个点阵的开关也要用一个字卦控制。

  十六乘以十六就是256个字卦,32768个汉字合计8388608字卦,折合前世的16MB。

  当时的大部分硬盘都装不下,更别说内存了。

  要让汉字勉强完整显示,不缺少笔画,也要十二乘以十二的点阵。

  这样总共也要9MB。

  就算是只记录通用汉字表,也需要2.25MB。

  七十年代以前的电脑,装下这个东西是非常吃力的。

  再次基础上,这也还只是点阵字库。

  要通过键盘把汉字打出来,输入到电脑里面去,还需要一个输入法程序。

  用于按照人类能够理解的逻辑,通过特定的按键组合,把想要的汉字从字库中筛选出来。

  这个过程跟英文打单词是一样的,区别只是一个字母一个字母的显示,最后组合起来形成命令。

  还是依次打完特定的组合的按键,组合形成成命令的同时显示出目标汉字。

  如果不涉及到高级的联想功能,用高度机械死板的输入法,限定死只能用哪些汉字,就是这样的逻辑。

  不过,点阵数据还可以放在硬盘上,字表和输入法就要载入内存了。

  当时的超级计算机内存也只有100KB出头的样子。

  这对当时的计算机而言是一个巨大的挑战。

  要先运行输入法程序,从字表中筛查出要输入的汉字,再去硬盘查点阵图输出到屏幕。

  就算是不惜成本,将字库输入法都所有功能都实现出来了。

  这台电脑多半也会出现打一个字就要等好几秒的状态。

  所以,朱靖垣现在看到电脑屏幕上有汉字,就知道工部绝对没有把汉字全做进计算机。

  因为现在的电脑也不需要将所有汉字输入进去。

  这时候的计算机就不是用来处理文字的。

  英文编程也不会把addition打完整,那这一个单词就需要64B的空间来容纳。

  一段代码打上几十个单词,就要占用KB级别的内存了,英文系统同样撑不住。

  肯定要能省就省的,直接写个ADD就行了。

  反正电脑不是处理文字的,当时的命令也只有几十个,单词都用简写也不会认错。

  汉字肯定是这么处理的,也只能这么处理。

  朱靖垣怀疑,这台电脑只能显示一两百,甚至几十个汉字。

  很可能是一个按键固定出一个字,一个对应一个固定的程序命令,剩下的就都是标点符号和数字了。

  符号系统也不会存在什么全角半角的区别,输入过程也不需要转换输入法。

  如果是这样的话,汉字汇编反而比英文更简单。

  因为单个汉字就有英文单词的作用,特别是在传统文言文仍然盛行的时代。

  朱靖垣眼前屏幕上的程序中的命令,确实全都是一个一个的单字。

  英文环境下单个字母很少有实际意义,至少要用两个到三个字母,才能让程序员产生有实际含义的联想。

  同时,眼前这个屏幕肯定是非常“高级”的功能。

  低级型号的电脑,很可能根本没有屏幕。

  因为屏幕上显示汉字和字母,哪怕是只有几十个,也非常浪费存储空间。

  早期的英文电脑同样是没有屏幕的。

  操作员都是盲打的。

  至于完整的八千个汉字,只能等下一代的电脑,把集成电路做出来再说了。

『加入书签,方便阅读』
热门推荐