关灯
护眼
字体:大 中 小
上一页
目录
下一页
或者—
更聪明的算法。
回到房间时,室友林枫正坐在床边看书。
见他进来,林枫抬起头,眼神有些复杂。
“你今天把苏联人镇住了。”他说,“我听队里其他人说的。”
陆沉在床边坐下:“只是做了一道题。”
“那不是一道题。”林枫放下书,“那是图兰定理。我在省队的时候就听说过,有人说这道题十年内没人能解。”
他停顿了一下:“你解了。在莫斯科。当着全苏联数学界的面。”
陆沉看着他:“你在担心什么?”
林枫沉默了一会儿。
“我在想。”他说,“我们真的是同一种生物吗?”
陆沉没有笑。。”
林枫愣了一瞬,然后忍不住笑了出来。
“你他妈————”他摇头,“行吧,我收回刚才那句话,你还是个正常人。”
他重新拿起书,翻到刚才那页。
过了一会儿,又开口了。
“陆沉。”
“恩?
”
“明天的团体赛,有一个模块是算法设计。”林枫说,“据说是苏联科学院计算中心出的题。会用他们那台BESM—6跑实测。”
BESM—6。苏联1968年投入使用的晶体管计算机,每秒运算约80万次。在这个时代,已经算是不错的机器了。
但在陆沉的认知里,这台机器的算力,还比不上前世的一台计算器。
“有什么问题?”他问。
“BESM—6的指令集和长城286不一样。”林枫说,“我们在国内练的都是长城机,临时换平台,很多人可能不适应。”
陆沉点头。
虽然自己是个列外,但这对队员来说确实是个问题。
适应新的机器指令集需要时间。
而团体赛的时间,通常不会太充裕。
“你打算怎么办?”他问。
林枫尤豫了一下。
“我下午去计算中心熟悉一下环境。”他说,“你要不要一起?”
陆沉想了想。
“好。”
莫斯科大学的计算中心在主楼东翼,穿过一条长长的走廊,经过两道岗哨,才能进入机房。
带队老师办好手续后,陆沉和林枫被允许进入。
机房很大,BESM—6的主机占据了大半个房间,磁带机嗡嗡作响,空调全力运转,依然能闻到一股淡淡的电子组件发热的气味。
几个苏联学生正在一台终端前操作,看到他们进来,目光有些微妙。
林枫走到一台空着的终端前坐下,开始查看指令手册。
陆沉没有急着上手。
他站在BESM—6的主机前,目光从控制面板上一一扫过。
寄存器。运算器。内存单元。
他的大脑开始构建这台机器的完整模型。
BESM—6的体系结构属于堆栈型架构,指令集包含约50条基本指令,字长48位,内存寻址范围————
他在脑海中逐条拆解指令集,分析每一条指令的时钟周期和微码执行流程。
这个过程用了大约四十分钟。
在这四十分钟里,他完成了对BESM—6指令集的完整逆向。
不是通过阅读手册那只能知道表面的语法规则。
他需要的是更深层的理解:指令流水线的冲突模式,Cache缺失的惩罚周期,乘除法指令的微码循环次数。
这些信息,手册上不会写。
但他可以通过对硬件结构的观察,结合指令执行的时序规律,反推出来。
就象看到一只表的外壳,就能推算出内部齿轮的咬合关系。
“陆沉。”林枫的声音传来,“你来看这个。”
他走过去。
林枫指着终端屏幕:“指令手册里说,乘除法运算需要调用子程序库,硬件没有直接支持。”
陆沉看了一眼。
BESM—6的早期型号确实没有硬件乘除法单元,需要通过软件仿真。
“效率很低。”林枫说,“做数值计算的话,大量时间都耗在乘除法上了。”
“有办法优化。”陆沉说。
林枫转头看他。
“乘除法的子程序库是开放的。”陆沉说,“可以改写。用移位和加法仿真乘法的时候,有更优的调度顺序。另外——
”
他指向屏幕上的另一段:“浮点运算也有空间。BESM—6的浮点格式是40位尾数加8位阶码,但它的规格化处理有冗馀步骤。如果绕过
林枫听得有些发愣。
“你————”他问
本章未完,请点击下一页继续阅读>>『加入书签,方便阅读』
上一页
目录
下一页