极小的、独立于主流水线之外的辅助预测单元。
“你们现在的思路是把分支预测的逻辑堆在主流水线前端,用深度学习模型做模式识别。思路没错,但放错了位置。主流水线太挤了,信号绕来绕去,绕一圈好几个时钟周期就没了。把这个辅助预测单元拆出来,直接挂在取指阶段后面。它不参与主流水线的任何运算,只做一件事,提前一个周期把分支目标地址算好,喂给取指单元。”
他在辅助预测单元和取指单元之间画了一根粗粗的箭头,箭头旁边标注了几个关键的延迟参数。
陈远洲盯着那根箭头看了很久,忽然摘下老花镜用袖口擦拭镜片。
这个动作他重复了两次,然后重新戴上眼镜,拿起红色记号笔在辅助预测单元旁边飞快地写了一组数学公式。
笔尖划过白板的沙沙声越来越快,写到最后一个等号时他的手微微发抖,不是紧张,是兴奋。
“把预测逻辑拆出来独立运行,主流水线不用等,取指不用抢。王总,你这个思路不是优化,是直接改架构。但辅助单元和主流水线之间的数据同步怎么解决?预测单元跑得再快,如果和主流水线的状态不同步,预测结果就是废的。”
王东来在辅助单元和主流水线之间补了一根虚线,旁边标注了同步锁存的时序图。
“用异步FIFO缓冲,深度不用大,够存两次预测结果就行。预测单元提前算完就扔进去,取指单元到点自己取。主流水线永远不等预测,预测永远不拖主流水线,异步时钟域,各跑各的。娲之前在设计鸿蒙内核调度器时用过类似的异步缓冲思路,FIFO的深度参数可以直接调过来。”
陈远洲把手里的红色记号笔搁在白板槽里,后退几步看着那张被画得密密麻麻的架构图,沉默了好一会儿。
然后他转过身对着团队里一个戴眼镜的年轻人说:“小刘,把王总刚才画的辅助预测单元用Verilog搭一版原型,时钟约束按异步FIFO的方案来设,今天搭完直接跑仿真。王总,如果这版跑通,预测准确率应该能再往上提好几个百分点。”
他又补了一句,语气很笃定:“不是线性提升,是直接把预测延迟砍掉。这套分支预测逻辑如果跑通,鸿蒙在低端芯片上的实时性至少能追上现在中高端芯片的水平。”
王东来点了点头没有多说什么。
他在实验室里又待了一段时间,逐项看了缓存一致性协议的优化方案和低功耗模式下的时钟门控设计,分别提了几个调整建议
…。。本站若有图片广告属于第三方接入,非本站所为,广告内容与本站无关,不代表本站立场,请谨慎阅读。
Copyright © 2020 祭司书院 All Rights Reserved.kk