首页 > 其他类型 > 四合院:我是雨水表哥 > 第540章 设计进行时

第540章 设计进行时(1/2)

目录
好书推荐: 至尊兵王 我在西山埋葬了爱情 帝少的千亿宠儿 聊天群:智识令使想要开拓万界 综影视之作精在线崩剧情 道士夜仗剑 权门悍妻 赐婚后,我挺孕肚让两位皇子疯抢 重生八零:开局跟一家子吸血鬼断亲 粘人傻夫君:独宠纨绔萌妃

第二天一早,第八组设计室,工业计算机26颗芯片的分配图挂在黑板上。

吕辰手里拿着《精简指令集体系结构与编码表》,站在黑板前。

台下坐着诸葛彪、钱兰、曾祺,以及七个设计小队42名成员。

“咱们的精简指令集,理论组已经设计完毕,我们在午马机上跑通了。48条指令,全部验证通过。”吕辰开门见山,“今天,咱们把这48条指令,分配到26颗芯片里。”

他翻开编码表,指着第一页的总表。

“按照咱们最初的设计,使用频率最高的指令,要做在主控核心和运算器里,单周期执行。io和特殊指令,分配到对应的专用芯片里。这些指令直接和硬件打交道,必须和对应的接口芯片协同设计。”

他放下手,看着台下:“下面,一项一项过。”

第一类是算术逻辑指令,一共是12条,吕辰在黑板上依次写了下来。

add、sub、mul、div、and、or、xor、not、cmp、inc、dec、neg

钱兰道:“这12条指令,是工业控制最常用的,几乎每个控制回路都要用。必须全部硬件化,放在主控制核心和定点运算器里。”

大张海举手:“mul和div也硬件化?乘法器和除法器面积可不小。”

曾祺回应道:“工业控制里的乘除,大部分是乘除常数,比如pid算法里的系数乘。做简单乘法器就够了,不需要32位乘32位的复杂单元。用移位加实现,面积小,速度够用。”

其他人没有意见,吕辰点点头:“主控核心:算术逻辑单元a露,支持12条指令。”

第二类是分支跳转指令,一共8条。

jmp、jz、jnz、jc、jnc、call、ret、int

诸葛彪道:“这些指令控制程序流程。中断、子程序调用、条件跳转,实时性要求高。”

钱兰特别指出“int”和“call”:“中断响应要在几个时钟周期内完成,所以中断现场保存必须硬件自动完成,不能用微程序。”

其他人没有意见,吕辰在中央处理模块那一栏画了一个箭头,指向主控制核心。

“全部放在主控制核心。”

第三类是数据传送指令,一共6条。

v、load、store、push、pop、xchg

吕辰指着黑板:“v是寄存器之间传数据,loadstore是寄存器和内存之间传数据。这些指令的执行频率极高,一个温度控制回路里,有一半指令是数据传送。”

周建国道:“loadstore要访问内存,地址计算和总线时序怎么处理?”

吕辰在黑板上画了一个简图。

“地址计算放在主控制核心,总线访问由存储控制器(kl-mc)配合完成。load指令执行时,主控核心把地址发到地址总线,存储控制器从内存读数据,放回数据总线,主控核心再把数据写进寄存器。”

其他人没有意见,吕辰在存储模块那一栏写了几个字:“kl-mc:配合loadstore实现。”

io读写指令一共10条。

in、out、ins、outs、read_adc、write_dac、read_temp、set_pwm、read_encoder、set_stepper

“这一类指令最多。”吕辰的声音提高了一些,“工业控制的核心就是读传感器、写执行器。这10条指令,每一条都对应一种或几种io操作。”

他在黑板上画了一张表,左边写上指令,右边空着。

“现在,咱们来讨论各io读写指令的对应芯片。”

钱兰道:“按照咱们的架构,io操作要放在专用芯片里,所以这些指令,不全部做在主控制核心里。”

吕辰点了点头:“主控核心只负责指挥,不负责干活。干活的事,交给专用芯片。这样主控核心的设计就简单了,不需要集成各种模拟电路和接口逻辑。”

经过讨论,inout放在数字量输入输出芯片;insouts放在串行通信控制器;read_adc放在模拟量输入芯片……

移位指令仅有4条,分别是shl、shr、rol、ror。

这个比较好定,移位指令用于数据处理,比如协议解析、编解码。

这些指令逻辑简单,但执行频率不低。

因此,放在主控核心的a露里,和算术逻辑单元共用数据通路。

位操作指令也只有3条,bset、bclr、btst,这些指令硬件实现很容易,放主控核心。

系统控制指令虽然同样是3条,但是就比较考量。

nop是空操作,halt是停机,wdr是看门狗复位。

wdr指令很重要,工业控制不能死机,看门狗定时器需要程序定期‘喂狗’,如果程序跑飞了,没有及时喂狗,看门狗就会自动复位系统。

小主,这个章节后面还有哦,请点击下一页继续阅读,后面更精彩!因此,wdr指令需要和电源管理芯片里的看门狗定时器配合。

在执行wdr时,主控核心通过控制总线告诉电源管理芯片喂狗了,定时器清零。

最后是两条特殊指令swi和rdtim,前者是软件中断,用于系统调用。后者是读时钟,用于实时任务调度。

讨论完毕,吕辰在黑板上写完最后一行字,放下粉笔,转过身。

“48条指令,分配完毕。咱们来总结一下。”

“48条指令,分配完毕。咱们来总结一下。”

“主控制核心,硬件实现40条高频指令,算术逻辑、分支跳转、数据传送、移位、位操作、系统控制、特殊指令中的swi和rdtim。冗余监控核心同上,2颗定点运算器,实现乘除法和移位操作,加速运算,存储模块……”

吕辰讲完,会议室里安静了几秒。

钱兰第一个开口:“吕辰,你把io指令和专用芯片的对应关系写成一张表,这个方法不错,以后写微程序的时候,程序员能查。”

曾祺赞同:“依我看,咱们得整理一个《io指令与芯片映射手册》,我看这个事,我来负责吧。”

诸葛彪问了一句:“那8条没有硬件化的低频指令,放在程序存储器里的微程序,谁来写?”

吕辰想了想:“这点事情不大,不用麻烦程序设计院,我拿去交给李师兄,这些没有硬件化的指令,最终都是要放进工业计算机的微程序库的。”

诸葛彪把烟掐灭在烟灰缸里,站起来伸了个懒腰。

“48条指令,40条硬件化,8条微程序模拟。分配完了,下一步干什么?”

吕辰看了看墙上的挂钟,已经快十二点了。

“下午开始,各小队根据指令集分配,修改《芯片功能规格说明书》。每一颗芯片,要明确列出它需要支持的指令、数据通路、控制接口。”

他看着台下:“三天之内,改完。然后开始逻辑设计。”

方案议定,吕辰等人进入了枯燥的设计工作当中。

这天一早,吕辰从厨房拿了两个馒头揣进兜里,推着自行车就出了门。

到了设计室,钱兰已经坐在桌前,面前摊着厚厚一沓稿纸,铅笔夹在耳朵上,正对着那张《精简指令集体系结构与编码表》发呆。

听见脚步声,抬起头,眼睛下面一圈青黑,显然昨晚也没睡好。

“钱师姐,这么早?”

钱兰揉了揉太阳穴:“48条指令分配到26颗芯片里,说是一句话的事,做起来全是问题。昨天晚上我翻了三个小时,发现好几个指令的执行路径在物理上根本走不通。”

她把稿纸转过来,指着上面用红笔圈出来的几处。

“你看这个load指令,需要从内存读数据到寄存器。但咱们的存储控制器和主控制核心之间,数据总线只有8位。load一次要两个周期,这还行。但问题是,如果连续load,总线仲裁会冲突。我刚才算了一下,至少要加一个数据缓冲队列,不然指令流水线根本转不起来。”

吕辰凑过去看了两眼,眉头皱了起来。

“加缓冲队列,意味着控制核心的逻辑要改。本来已经定了40条硬件指令,现在为了这个队列,至少要多加两个状态。”

“所以我才头疼。”钱兰把铅笔拿下来,在纸上敲了敲,“不加,性能不达标;加了,面积超标、时序收不住。宋教授那边卡得严,五微米工艺下,核心芯片面积不能超过80平方毫米。”

本章未完,点击下一页继续阅读。

目录
新书推荐: 你一美警,老想着回东方干啥玩意 民间诡闻实录 [童话]角色扮演 养老从六十年代开始 注视深渊 夜郎自大(全2册) 心机美人 冰糖炖雪梨【同名剧已播出】 重回70为国铸剑,开局爆改59式 长生猎户,从形意拳到人间武圣! 美人村,幸福 我乘风雪 陈年烈苟 忍界程序员 罗浮 女神的贴身高手陈扬苏晴 地球第一剑 传奇 有生之年 末世之本源进化
返回顶部