第186章 潜行岁月 - 天枢协同(中)
代码潮汐提示您:看后求收藏(第186章 潜行岁月 - 天枢协同(中),大杂烩姨妈姐妹齐上阵免费阅读,代码潮汐,废文网),接着再看更方便。
请关闭浏览器的阅读/畅读/小说模式并且关闭广告屏蔽过滤功能,避免出现内容无法显示或者段落错乱。
启明芯“蜂巢”秘密研发基地内,成功的喜悦如同投入平静湖面的石子,荡漾开一圈圈激动人心的涟漪。
“北辰”oS内核的初步引导成功,以及早期UI框架在模拟硬件上的流畅运行,极大地鼓舞了所有参与者的士气。这证明了林轩选择的技术路线是可行的,也证明了团队强大的技术攻坚能力。
然而,短暂的庆祝之后,更艰巨、更细致的工作立刻接踵而至。原型平台的成功,仅仅是在“沙盘”上验证了可行性。要将这个“沙盘”变成真正能够上战场的、性能卓越、稳定可靠的“钢铁洪流”,就需要“北辰”oS软件团队与“天枢”Soc硬件团队之间,进行前所未有的、深入骨髓的协同作战。
而实现这种协同的关键,正是启明芯的“秘密武器”——“盘古”和“女娲”EdA平台。
一个典型的协同场景,在接下来的几周内反复上演:
场景:UI渲染瓶颈的快速定位与协同优化
这天下午,“北辰”oS图形与UI框架团队的负责人阿杰(一位从硅谷挖来的、曾在SGI工作过的图形技术专家),找到了正在“蜂巢”进行技术指导的小张(张明),脸上带着一丝凝重。
“张总,”阿杰指着一台连接着FpGA原型验证平台的、显示着“北辰”oS早期界面的高分辨率屏幕,“我们发现一个问题。当界面上同时存在多个半透明窗口叠加、并且进行快速拖动或缩放操作时,偶尔会出现轻微的掉帧和卡顿现象。虽然比Symbian和wm已经流畅太多了,但这离林总要求的‘绝对丝滑’还有差距。”
小张立刻重视起来,和阿杰一起来到测试平台前。他们运行了专门的UI性能测试脚本,并同时启动了集成在“北辰 Studio”IdE中的硬件性能剖析(hardware profiling)工具。
这个工具,正是李志远EdA团队的杰作。它能够实时地、非侵入式地(或以极低开销)监控运行在FpGA原型或硬件仿真器上的Soc内部关键性能指标,并将数据可视化地呈现在IdE界面上。
随着UI测试脚本运行,IdE的性能剖析窗口中,各种曲线和数据开始跳动:cpU占用率、GpU渲染管线负载、显存(共享主内存)带宽占用率、AxI总线拥堵情况……
很快,问题暴露出来。
“你看这里!”阿杰指着屏幕,“在进行多层半透明窗口合成(Alpha blending)和高速拖动时,GpU的渲染管线负载其实并不高,‘灵猴’GpU的处理能力绰绰有余。但是,内存带宽占用率却瞬间飙升,并且AxI总线的读延迟也明显增大!”
小张立刻明白了:“瓶颈不在GpU运算本身,而在于GpU访问内存读取纹理数据、以及将渲染结果写回显存(Framebuffer)的通路上!在高并发、大吞吐量的图形操作下,内存带宽成为了瓶颈,或者说,是内存控制器和总线仲裁机制不够高效!”
如果是传统的开发模式,发现这个问题后,软件团队能做的很有限,最多只能在软件层面尝试优化渲染算法,减少访存次数。但效果往往不佳,而且治标不治本。他们只能寄希望于硬件团队在下一个芯片版本中改进内存子系统设计,但这至少需要等待几个月甚至一年。
但在启明芯,情况完全不同!
小张立刻通过内部集成的项目管理与协同平台(基于EdA平台二次开发),创建了一个高优先级的“性能优化请求”,详细描述了问题现象、性能剖析数据、以及对硬件内存子系统提出的优化建议(比如增大GpU专用cache、优化内存控制器调度算法、或者提高AxI总线优先级等),并将这个请求直接指派给了负责“天枢”Soc内存子系统设计的硬件工程师老王(并非模拟专家老王,可能是另一位数字电路专家)。
几分钟后,远在启明芯深圳研发中心的硬件团队的老王,就在他的工作站上收到了这个请求。
“内存带宽瓶颈?GpU访存延迟高?”老王看着软件团队提供的详尽数据和波形截图,立刻明白了问题的严重性。
本章未完,点击下一页继续阅读。