关灯 字号:小

第207章 数学组的烦恼

章节报错(免登陆)

一秒记住【顶点小说】dingdian365.com,更新快,无弹窗!


    第207章数学组的烦恼(第1/2页)
    存储器组由于磁芯和自动绕线机的突破,全组都陷入了一片喜气洋洋的景象之中。
    可在这一片喜气洋洋之中,数学组却呈现出愁云惨淡的情况。
    ······
    计算机所,数学组的研究室里。
    华老坐在办公桌前,桌上铺满了稿纸,正在快速验算。
    苏步云坐在桌前,手里捏着一张刚从机房电传打字机上撕下来的输出纸,叹了口气。
    他推了推眼镜,又不可置信的看了一遍纸上歪歪扭扭的数字。
    大坝最大主应力:-32768公斤/平方厘米
    负的!
    一座混凝土大坝,主应力居然是负的!
    这意味着什么?这意味着这座坝不是在受压,而是在受拉。
    可混凝土大坝,根本不可能受拉啊,毕竟大坝顶上又没有UFO在吸它。
    应用组的张履安已经来问了两次了,每次都是一脸惊恐,搓着手问:“苏教授,这大坝……怎么会算出负数呢?”
    苏步云每次都只能硬着头皮说:“程序出了点问题,正在改。”
    可他心里清楚,这一次,不是程序出了问题。
    是机器出了问题。
    或者说,是这台验证机的“世界观”出了问题。
    不过苏步云嘴上说是验证机,但其实它现在还算不上一台完整的机器。
    毕竟真实的磁芯存储阵列还没装上。
    存储器组那边刚突破了磁芯材料和自动绕线机,第一块64×64的阵列正在组装,离装到验证机上,至少还要好几天。
    现在数学组跑程序,用的是硬件组和存储器组之前临时搭的一个测试台。
    存储器是手工穿的小规模磁芯阵列,只有64字。
    64字。
    仅有验证机目标容量512字的八分之一。
    苏步云他们就是在这64字的临时存储上,硬塞大坝应力的程序。
    塞不下,就分段,一段一段的跑。
    跑一段,读一段纸带,再跑下一段。
    就这么折腾了好几天,结果折腾出来个-32768。
    ······
    说起来,数学组这一路走来,踩过的坑,比那台机器里面的电子管还多。
    刚开始的时候,别说汇编器,甚至连助记符都没有。
    最开始写一个从1加到1000的小程序,苏步云花了整整三天。
    第一天查指令表,先把每条指令的操作码和地址码找出来,第二天把汇总的37条指令翻译成16位的二进制数字,密密麻麻写满了三页纸,看得他眼睛都花了,第三天开始穿纸带,打到第23条的时候手一抖,不小心多打了一个孔,得,前面22条全白干了。
    年轻数学家小周更惨,他写了个120条指令的排序程序,上机一跑直接乱套了,查了一整天天,最后发现是第47条指令的第8位穿错了。
    就错了一个孔,整个程序直接就全废了,气的小周当时差点没把穿孔机给砸了。
    后来他们学聪明了。
    苏步云、华教授和林远定义了一套助记符,ADD代表加法,SUB代表减法,JMP代表跳转,LDA代表取数。写程序的时候先用助记符写,再人工对照翻译成机器码。
    这其实就是最原始的汇编器。
    小周把常用的操作做成了标准纸带段:包含浮点加法、浮点乘法、数组遍历,这些经常用的操作,提前穿好纸带,需要的时候直接拼上去,这样就不用每次都重复穿一遍了。
    而且他们还搞了个三岗制:一人编程序,一人校对机器码,一人穿孔,三个人互相盯着,这样出错率直接降了一大半。
    (本章未完,请点击下一页继续阅读)第207章数学组的烦恼(第2/2页)
    最后,他们还专门找了几个手巧的学生负责穿孔,数学组只负责写逻辑,不亲自碰穿孔机。
    这套组合拳打下来,编程效率提升了十倍不止。
    以前要写三天的程序,现在半天就能搞定。
    以前动辄查三天的bUg,现在三岗制一卡,大部分都能在穿孔前发现。
    数学组的人都觉得,最难的日子已经过去了。
    直到他们遇到了“负数”问题。
    ······
    “华老,您看看这个。”
    苏步云把那张打印纸推到华老面前。
    华老还在草稿纸上验算着什么,他放下钢笔,接过打印纸,只看了一眼,眉头就立刻皱成了一个疙瘩。
    “-32768?”
    “对。”苏步云有点不好意思,“我一开始也以为是程序写错了,或者纸带穿错了。”
    “可我查了三遍程序,三岗制也过了两遍,却没有发现任何问题。”
    “emm......小苏,这是不是中间结果膨胀了?”
    华教授一眼就点出了问题的结症,苏步云也立刻反应了过来,懊恼道:“哎呀!我用的是雅可比迭代。”
    华老拿起草稿纸,在上面写了几笔。
    “雅可比迭代的中间矩阵,本来就会比最终结果大一个量级。”
    “你按最终结果选比例因子,中间不溢出才怪。”
    苏步云有点不好意思。
    这个失误,说大不大,说小不小。
    溢出这个问题,从机器设计之初他们就知道,16位定点数,最大正数32767,超过这个数值就会溢出,从而导致符号位翻转的问题。
    林远也提前提醒过,让他们用比例因子法。
    可苏步云却犯了个错误:他只算了最终结果的范围,却没算中间结果。
    毕竟大坝应力的最终结果是几千公斤/平方厘米,除以1000之后变成几个单位,怎么都不会溢出。
    但迭代过程中的中间矩阵,元素值会膨胀到几万甚至几十万。
    比例因子没留够余量,中间结果直接就爆炸了。
    这个问题,比之前所有的问题都要棘手。
    之前的问题,是工具的问题,只要肯想办法,总能解决。
    可溢出不一样。
    这是机器本身的物理限制。
    16位就是16位,符号位就是符号位,你改不了。
    就好比一个量筒,最多能量32767毫升的水,你非要往里倒40000毫升,它只能溢出来。
    “小苏,这不怪你。”华老忽然开口。
    苏步云抬起头。
    “当初定16位字长的时候,我就该坚持做24位。”华老看着草稿纸上的数字,“24位的话,最大正数能到800多万,大坝应力这点数,怎么都不会溢出。”
    “可当时硬件组说,16位已经用了1000多个电子管,再扩到24位,已经严重偏离了既定目标。”
    “林远同志也说,验证机先跑通架构,字长可以后面再加。”
    “我想着,定点数加比例因子,应该够用了。”
    他顿了顿,苦笑了一声。
    “我当时再坚持一下就好了。”
    苏步云此刻显得有些内疚,因为这不是“不知道”的错误,而是“算错了”的错误,这本是可以避免的。
    溢出的原理他们都懂,比例因子法林远也给了方向,可中间结果会膨胀这么多,谁也没料到。
    不过现在说这些都没用了。
    得想办法找补才行。
章节报错(免登陆)
验证码: 提交关闭
猜你喜欢: 龙珠:超级签到系统 读心:微表情神探 三嫁阎君 炮灰贵妃的咸鱼日常 末日求生:我在海上建堡垒 谁让他当假面骑士的! 今天复兴汉室了吗? 美利坚:烧尸人 规则天书 特遣小队,阴到没边! 你才修行几年,就说修仙 八零归国伪名媛,带飞糙汉老公 真千金被弃,错撩瘫首长脸红心跳 诸天:我的替身是哆啦A梦 异界争霸之绝世召唤 毒医在星际 守十年活寡:改嫁杀猪匠被宠上天 没有人比我更懂内娱! 1976,我供6个女孩上大学