合同编号LW-TQ-2017-0042。甲方蓝湾通信股份有限公司,乙方华夏四零二科技有限公司。标的:天穹星座地面智能终端信号处理软件模块开发。合同金额:人民币玖拾捌万元整。工期:一百二十天。
签字的时候左城的手很稳。
陈浩的手也很稳——但左城注意到他签完名之后,把笔帽盖回去的动作比平时慢了半拍,象是在消化某种不太真实的感觉。
合同一式四份,双方各执两份。采购中心的人把盖好公章的合同装进文档袋递过来的时候,说了句:”首付款百分之三十,合同生效后十五个工作日内到帐。”
百分之三十,二十九万四千元。
这是402的银行账户里即将出现的最大一笔数字。
从采购中心出来,两个人站在蓝湾通信大楼的门廊下。四月的阳光很好,广场上的喷泉在风里扬起细密的水雾。
陈浩忽然说了句:”城哥,我刚才签字的时候在想一件事。”
”什么?”
”去年九月咱们在宿舍里凑钱买服务器的时候,四个人翻遍口袋凑了三千二。现在我们签了一份九十八万的合同。”他看着手里的文档袋,”中间才隔了七个月。”
左城笑了一下。
”走吧,回去开会。九十八万不是白拿的,一百二十天的交付期,从今天开始倒计时。”
下午两点,402全员会议。
办公室里挤了六个人——左城、陈浩、方泽、张磊、刘伟,加之以项目顾问身份参与的韩露。沉月有课没来,但在群里挂着实时旁听。
左城在白板上画了一张项目分解图。
”天穹地面终端信号处理模块,内核功能四个——信号接收与同步、解调与译码、信道估计与预测、波束管理接口。其中信道估计与预测是技术难点,也是我们的强项,由我主攻。信号接收和解调模块由陈浩负责,这部分和我们之前做的基站项目有大量可复用的代码。波束管理接口由方泽负责——”
他看了方泽一眼。方泽从笔记本计算机后面抬起头,点了下头。
”——嵌入式平台的整体架构、编译优化和性能调优也是方泽的活。张磊负责测试框架搭建和自动化测试用例设计。刘伟继续盯着其他客户的项目,402不能因为一单大活就把小客户丢了。韩露负责合同执行过程中的商务对接和里程碑验收文档。”
”分工明确。”韩露在笔记本上快速记着,”里程碑节点呢?”
”合同里约定了三个里程碑。第一个是第四十五天,交付信号接收和解调模块的可运行版本。第二个是第七十五天,交付信道估计与波束管理模块的可运行版本。第三个是第一百二十天,全模块联调完成,交付最终版本和全套文档。”
”每个里程碑验收通过后付百分之二十,尾款百分之十在三个月技术支持期结束后支付。”韩露补充了合同的付款条款。
左城点头,转向方泽:”嵌入式平台的选型文档蓝湾通信已经发过来了,你看过了吧?”
”看了。”方泽推了推眼镜,”他们指定的平台是基于ARM Cortex-A72的定制板卡,跑的是裁剪过的Linux系统。硬件性能比我之前做过的5G基站平台弱一个档次,但够用。主要挑战是内存——只有512MB,我们的算法要在这个内存限制下跑起来,需要做大量的优化。”
”512MB?”陈浩皱了下眉,”信道预测模块光是状态缓存就要吃掉不少内存,再加之信号接收和解调的缓冲区……”
”所以要做内存池化管理。”左城接过话头。
说到这里,他脑子里忽然涌上来一股清淅的直觉——那是科技融合叶片带来的”手感”。
”不只是内存池化。”他走到白板前,画了一个架构图,”嵌入式平台上跑实时信号处理,最忌讳的是动态内存分配——每一次lloc和free都可能造成内存碎片,跑久了系统就会变慢甚至崩溃。传统做法是预分配一大块静态内存,但512MB的限制下静态预分配太浪费。”
他在图上画了三个层次。
”我的方案是做一个三级内存架构。第一级,内核算法用的关键数据结构全部静态预分配,大小固定,绝不动态申请。第二级,非关键的临时缓冲区用环形内存池,池的大小根据当前负载动态调整,但调整粒度是粗粒度的——每五秒评估一次,不会频繁抖动。第三级,极少使用的低优先级功能共享一个压缩内存区,用的时候解压,不用的时候回收。”
方泽盯着白板看了五秒钟,然后慢慢点了头。
”这个架构能把峰值内存占用压到350MB以内。留出160MB的馀量给系统和其他进程。”他的语气里带着一丝佩服,”城哥,你什么时候对嵌入式的内存