许教授皱了皱眉,他又翻开另一页:“实时性呢?中断响应要求多少?”
“从中断触发到执行第一条用户指令,不超过10微秒。所以中断现场保存要硬件完成,不能用微程序。用微程序保存现场,至少要几十条指令,几十微秒就过去了,来不及。”
许教授点了点头,在本子上记了一笔:“这个可以做到,中断向量表固化在Rom里,硬件自动压栈,我建议用辅核来做中断现场保存?”
吕辰笑道:“许教授高明,辅核平时闲着,主核跑程序的时候,辅核可以预取中断向量、预保存现场。中断来了,主核直接跳转,辅核已经把活干完了。”
许教授摆摆手,脸上没什么表情。
他继续翻册子,翻到中间一页,停了下来。
“这个‘算术逻辑类’,只有加、减、与、或、异或、移位、比较。没有乘、除,没有浮点运算。”
他看着吕辰:“理论组这边的意见,是建议增加浮点运算指令。虽然你们现在用不着,但将来呢?工业控制如果涉及复杂计算,比如流体力学、热力学模型,浮点运算就是必需。现在不加,将来要加的时候,指令集不兼容,整个体系就要推倒重来。”
这个问题,吕辰想过很多次。
他摇了摇头:“许教授,工业计算机不是科学计算器。它的工作环境是车间,不是实验室。加浮点,芯片面积至少要翻一倍,功耗翻一倍,可靠性下降。而且,真要浮点,可以外挂协处理器。主控芯片只做定点,浮点交给协处理器去做,各司其职,互不干扰。”
他想了想,又说:“而且,工业计算机的生命周期很长。一条产线用10年、20年,控制系统不会轻易升级。我们现在加了浮点,10年后用不用得上,不知道。但芯片面积的增加、可靠性的下降,是实实在在的。生产线不能停机,可靠性比性能重要。”
许教授沉默了几秒,然后点了点头:“你说得有道理。但我有一个条件。”
“您说。”
“指令集留扩展接口,以后如果需要加浮点,不能动现有的指令编码。也就是说,现有的指令集是基础集,以后要能在这个基础上加扩展集。扩展指令的编码,不能和基础指令冲突。”
吕辰想了想:“这个可以做到。指令编码的时候,留一部分操作码空间给扩展指令。现有的40到50条指令,用掉一部分操作码,剩下的预留。以后加浮点指令,直接用预留的操作码,不影响现有程序。”
许教授在本子上记了一笔,合上册子。
“行,就按这个思路,两周之内,我给你一个能在午马机上跑的指令集仿真模型。你们拿回去跑你们的微程序,看看能不能跑通。跑通了,再固化。”
吕辰站起来:“许教授,谢谢您。”
许教授摆了摆手:“谢什么?这是理论组该干的活。”
他顿了顿,又说:“你那个《指令集需求规格书》,写得不错。每一条指令的使用场景、使用频率、实时性要求,都写得很清楚。”
吕辰笑了笑:“许教授过奖了,做工程讲究需求驱动。不知道用在哪里,就不敢乱提要求。”
许教授看了他一眼:“你说得对,不知道用在哪里,就不敢乱提要求。很多人不明白这个道理。”
两人又把剩下的几个技术细节过了一遍。
中断优先级怎么定?中断嵌套支不支持?子程序调用最多能嵌套多少层?堆栈深度多少?每一条,都讨论得清清楚楚。
等全部过完,已经快十一点了。
许教授看了看表:“留下来吃午饭?食堂今天有红烧肉。”
吕辰笑着摇了摇头:“不了,家里娃娃还小,我得去陪着。”
许教授知得开心:“对,娃娃是大事!那就不留你了。两周之后,仿真模型出来,我让人送到红星所。”
回程的路上,一路顶着烈日,他骑得飞快,赶在中午前到了家。
家里热闹起来,陈婶正准备去后院暖棚里伺弄蔬菜,小何骏提着小水桶,小吕晓攥着一根小铲子,屁颠颠跟在后面。
陈雪茹、娄晓娥、赵奶奶在正堂里围着八仙桌聊得火热。
八仙桌上,铺着一块素色布,上面摆着陈雪茹的作品,一套完整的《宋代命妇礼服复原图样》。
吕辰走过去,凑近看。
这一套作品非常丰富,比他想象的还要好。
最上面是手绘的礼服结构分解图,上衣、下裳、蔽膝、大带、绶、佩、履,每一种部件的尺寸标注、裁剪示意图,都画得工工整整。
线条流畅,标注清晰,一看就是下了真功夫的。
旁边是不同部位的纹样设计图。
翟鸟纹、云纹、小