他迅速调出“天枢”Soc内存子系统的RtL代码和“盘古”提供的系统级性能仿真模型,开始进行分析和优化探索。
他首先尝试在仿真模型中增大GpU L2 cache的容量,发现对性能提升有帮助,但带来的面积和功耗代价较大,不是最优方案。
然后,他重点分析了AxI总线仲裁器的逻辑。利用“盘古”的性能调试工具,他发现在高并发图形负载下,现有的基于固定优先级或简单轮询的仲裁算法,确实无法很好地保证GpU这种高带宽需求master的服务质量(qoS)。
“看来问题出在仲裁策略上!”老王眼中闪过一丝兴奋。
他立刻动手修改RtL代码,在AxI总线仲裁器中实现了一种更先进的、基于服务等级(qoS)和实时带宽需求的动态优先级调度算法。这种算法能够智能地识别出GpU的高优先级访存请求,并为其动态分配更高的总线带宽和更低的访问延迟。
修改完成后,他利用“盘古”的形式化验证(Formal Verification)工具,快速验证了新仲裁逻辑的功能正确性和无死锁性。然后,再次进行系统级性能仿真。
仿真结果显示,采用了新的动态仲裁算法后,在同样的高并发图形负载下,GpU的访存延迟显着降低,内存带宽瓶颈得到极大缓解!
整个分析、修改、验证的过程,只花了他不到两天的时间!
老王立刻将修改后的RtL代码和验证报告,通过协同平台反馈给了“北辰”oS团队。
“蜂巢”基地内,小张和阿杰收到了更新通知,兴奋不已。他们立刻将新的硬件描述(可能是一个更新的FpGA比特流文件,由EdA工具自动生成)加载到原型验证平台上,再次运行之前的UI压力测试脚本。
奇迹发生了!
之前出现的掉帧和卡顿现象完全消失!即使进行最复杂的多层半透明窗口拖动和缩放,界面依然如丝般顺滑,响应速度快得惊人!IdE性能剖析窗口中的内存带宽占用曲线也变得更加平缓,总线延迟大幅降低!
“解决了!彻底解决了!”阿杰激动地喊道,“硬件那边只用了不到两天时间,就帮我们解决了这个大瓶颈!这……这效率太恐怖了!”
小张也深有同感。他知道,如果没有这套强大的自研EdA平台和紧密的软硬件协同流程,同样的问题,在其他公司可能需要数周甚至数月才能定位和解决(如果能解决的话)。而启明芯,将这个周期缩短到了天!
这种基于EdA平台的、前所未有的协同效率,正是林轩敢于提出三年计划、敢于挑战操作系统的最大底气所在!它如同一个强大的“加速器”,让“北辰”和“天枢”这两个原本可能需要漫长时间才能磨合的“齿轮”,从一开始就能以前所未有的精度和速度紧密啮合、高效运转!
“通知硬件那边,这个修改非常好!”小张对阿杰说,“让他们固化到主干代码里!我们继续测试其他模块!”
类似这样的软硬件协同优化场景,在接下来的日子里,成为了“蜂巢”基地和深圳硬件团队之间的日常。软件发现瓶颈,硬件快速响应优化,软件再基于优化后的硬件进行适配和验证……
“北辰”oS和“天枢”Soc,就像一对在共同进化中不断变得更强的“双子星”,在启明芯自研EdA平台的强力“粘合”与“催化”下,正以一种令外界难以想象的速度,朝着那个共同的、光辉的目标高速前进!