。分配完了,下一步干什么?”
吕辰看了看墙上的挂钟,已经快十二点了。
“下午开始,各小队根据指令集分配,修改《芯片功能规格说明书》。每一颗芯片,要明确列出它需要支持的指令、数据通路、控制接口。”
他看着台下:“三天之内,改完。然后开始逻辑设计。”
方案议定,吕辰等人进入了枯燥的设计工作当中。
这天一早,吕辰从厨房拿了两个馒头揣进兜里,推着自行车就出了门。
到了设计室,钱兰已经坐在桌前,面前摊着厚厚一沓稿纸,铅笔夹在耳朵上,正对着那张《精简指令集体系结构与编码表》发呆。
听见脚步声,抬起头,眼睛下面一圈青黑,显然昨晚也没睡好。
“钱师姐,这么早?”
钱兰揉了揉太阳穴:“48条指令分配到26颗芯片里,说是一句话的事,做起来全是问题。昨天晚上我翻了三个小时,发现好几个指令的执行路径在物理上根本走不通。”
她把稿纸转过来,指着上面用红笔圈出来的几处。
“你看这个load指令,需要从内存读数据到寄存器。但咱们的存储控制器和主控制核心之间,数据总线只有8位。load一次要两个周期,这还行。但问题是,如果连续load,总线仲裁会冲突。我刚才算了一下,至少要加一个数据缓冲队列,不然指令流水线根本转不起来。”
吕辰凑过去看了两眼,眉头皱了起来。
“加缓冲队列,意味着控制核心的逻辑要改。本来已经定了40条硬件指令,现在为了这个队列,至少要多加两个状态。”
“所以我才头疼。”钱兰把铅笔拿下来,在纸上敲了敲,“不加,性能不达标;加了,面积超标、时序收不住。宋教授那边卡得严,五微米工艺下,核心芯片面积不能超过80平方毫米。”
正说着,走廊里传来一阵急促的脚步声。
诸葛彪推门进来,手里端着一个搪瓷缸子,嘴里叼着一根烟,头发乱得像鸡窝。
“你们也这么早?”他把搪瓷缸子往桌上一墩,表情严肃。
“一条一条搬太慢。”吕辰摇了摇头,“工业控制虽然不在乎那几微秒,但连续i/o的时候,如果每次都打断主控,整个系统的实时性就完了。芯片内部加一个小状态机,支持自动地址递增和块传输。主控核心只需要发一条指令,剩下的活儿由芯片自己干。”
钱兰点头:“这个思路可行,状态机不复杂,几十个门就能搞定。而且以后升级也方便,换个状态机就行,不用改主控。”
正说着,曾祺也推门进来了。
他手里拿着厚厚一沓图纸,往桌上一放,图纸的边角都已经卷了,上面密密麻麻画满了门电路符号和连线。
他拉过一把椅子坐下:“我昨晚过了一遍板卡,发现一个问题,主控核心有40条硬件指令,指令译码器的逻辑至少需要七八百个门。放在五微米工艺下,面积倒是不大,但关键是指令译码的延迟。我算了一下,最坏情况下,译码路径要经过四五个门级,加上布线延迟,怕是会超过时钟周期。”
诸葛彪想了想:“把指令译码器拆成两级流水。第一级做指令预取和粗分类,第二级做详细译码。这样每级的延迟都能收住,而且第一级可以提前预取下一条指令,减少流水线停顿。”
钱兰拿起铅笔,在图纸上画了一个两级流水线的示意图,看了一会儿,点了点头:“应该可行,但这样控制器的状态机要改,从原来的五状态变成七状态。”
吕辰拍板:“改,七状态能守住时序就行。咱们不求最快,但求最稳。生产线上的计算机,不能动不动就死机。”
四个人围着桌子,一张图纸一张图纸地翻,一个问题一个问题地过。
窗外的太阳慢慢升起来,阳光从窗户照进来,照在那堆密密麻麻的图纸上,照在四个人熬得发红的眼睛上。
不知不觉,已经九点多了。
办公室的门又被敲响了。
大张海端着一保温桶豆浆,提着一兜油条进来:“你们还没吃早饭吧?我从食堂带的,先吃了再做。”
诸葛彪这倒了一碗豆浆,端着就灌了一大口,烫得嘶了一声。
“诸葛师兄,慢点,烫。”大张海嘿嘿笑了两声,转身跑了。
四个人就着豆浆油条,边吃边继续讨论。
这一天,只是接下来两个多月里最普通的一天。
接下来的日子,整个集成电路实验室第八组,加上自动化控制中心抽调过来的十几个人,全部陷入了没日没夜的逻辑设计攻坚战。
吕辰的办公室成了“作战指挥部”。
桌上、地上、椅子上,到处堆着图纸,有的是手绘的逻辑图,硫酸纸,墨线描得密密麻麻。
有的是打印的版图草稿,边角处用红蓝铅笔标注着修改意见。
还有的是从档案室借出来的旧电路图,纸张已经发黄,边角卷曲,但上面的每一个继电器、每一条连线,都可能是新芯片的逻辑来源。
每天早上,吕辰到办公室的第一件事,就是烧一壶开水,泡一缸浓茶,然后坐下来,开始翻图纸。
一看就是一上午。
有时候盯着一个模块看上两个小时,铅笔在纸上画了又擦、擦了又画,最后发现最初的设计就是对的,又原样画回去。
有时候翻着翻着,忽然发现一个隐藏的bug,兴奋得站起来拍桌子。
中午去食堂吃饭,端着饭碗还在想问题,走到桌边才发现碗里已经空了,不记得自己吃没吃过。
下午继续看图、画图、讨论、推翻、重来。
晚上别人下班了,他们还在办公室里熬。
一盏台灯、一缸浓茶、一包烟,能撑到半夜。
有时候困得不行了,就趴在桌上眯一会儿,