关灯
护眼
字体:大 中 小
上一页
目录
下一页
先写后读,地址递增,数据模式全0、全1、交替5A、A5。
屏幕上每完成一组测试,就跳出一个绿色的“PASS”。
30组基础测试,全部通过。
“写入全部主存,随机地址。”汪涵说。
这是第一道硬门槛,6台机柜的全部主存容量为28MB,在当时已是天文数字。
钱兰敲了一个脚本,终端机开始咔嗒咔嗒地响,探针矩阵一行一行地扫过二维卡。
机房里的气氛安静了下来。所有人都在等。
三分钟后,屏幕上跳出一行字:
WRITE COMPLETE. BYTES WRITTEN.
“读回校验。”
钱兰敲了读回命令。
又是一段漫长的等待。
屏幕上的字符开始滚动,每一行都是地址和数据比对的结果。
滚了大约两分钟,最后一行跳出来:
READ VERIFY COMPLETE. ALL DATA MATCHED. 0 ERRORS.
吴国华盯着那行字看了两秒,肩膀微微松了一下。
郑长枫在笔记本上记了一笔:“随机读写,零错误。”
真正考验存储子系统的是跨子系统协同。
1月10日
此时运算机柜还没有正式上架,但第一阶段最小系统里已经有一块运算板在机柜里跑着。汪涵决定用那块运算板做协同测试。
这是一个典型的科学计算场景。
运算单元从存储取数据,计算完再存回去。
路径上任何问题都会暴露。
汪涵亲自加载FFT微程序,那条微程序有三百多条指令,是向量计算库里最复杂的一个。
加载完成。
钱兰敲了运行命令。
运算板上的指示灯开始闪烁。黄色的总线占用灯闪得很快,绿色的运行灯一直亮着。存储机柜那边的指示灯也在闪,读写的频率很高,像某种急促的心跳。
三十秒后,屏幕上跳出一行字:
FFT COMPLETE. DATA VERIFIED.
“比对一下原始数据和变换后的数据。”吕辰说。
钱兰又敲了一组命令。
屏幕上开始逐行比对,每一行都跳出一个绿色的“MATCH”。
滚了十几秒,最后一行:
ALL DATA VERIFIED. 0 ERRORS.
汪涵靠在椅背上,把眼镜摘下来擦了擦。
他的手指在镜片上停了一下,像是在确认自己没有看错。
”那一行写了两个字:通过。
秦无功拿着绿色记号笔走到接口对照表前,在“存储子系统”那一列下面,一口气打了六个勾。
第二轮测试中也不是一帆风顺。
1月11日上午,当第三台存储机柜上架后,系统出现了第一次重大故障。
总线死锁。
现象是:两个存储控制器同时向同一块内存区域发出读写请求,仲裁器没有处理好优先级,两条指令卡死在了总线上。系统不崩溃,但也无法继续执行。
示波器上能看到地址总线的电平卡在中间状态,既不归零也不跳变。
吴国华用逻辑分析仪抓了半个小时的波形,最后锁定在两组地址信号的重叠窗口。
“两个控制器同时申请同一个Bank,仲裁器给的应答信号同时到达,谁也没等到对方的释放信号。”他用手指点着屏幕上的两条波形,“死锁了。”
钱兰听到这话立刻走到黑板前,画了一张仲裁状态转移图。
“现有的仲裁优先级是‘先来先服务’。如果两个请求同时到达,状态机没有定义这种情况,会进入一个非法状态。”她用粉笔在图上圈了一个圈,“这里,缺少一个‘同时到达’的处理分支。”
汪涵走过来看了看,点了点头:“微程序里加一条判断。两个请求同时到达时,默认给低地址Bank的控制器优先级。不需要改硬件。”
他当场坐下,在终端上修改微程序,加了六个微指令,重新制作了二维卡,加载,重启。
死锁消失。
郑长枫重新跑了一遍28MB随机读写测试,全部通过。
吕辰在本子上记了一笔:“总线仲裁缺陷,微程序修复。已归档至故障模式库。”
墙上接口对照表的“存储仲裁”格子,被打上了一个绿勾,旁边用红笔标注了“已修复”。
1月12日下午,存储子系统独立测试全部完成。
六台机柜满配,ECC纠错验证通过。
测试人员故意在写入数据后、读出前用信号发生器
本章未完,请点击下一页继续阅读>>『加入书签,方便阅读』
上一页
目录
下一页