Navigator Runtime 帮助您最大限度提高多内核效率
图 3 主要展示 Navigator Runtime 概念及其与多内核导航器的互动。
图 3:Navigator Runtime 与多内核导航器的互动
多内核性能可使用加速性进行测量,加速性的定义是用单内核串行执行时间除以多内核执行时间。在理想条件下,8 内核系统的加速性等于 8。但在实际中,由于多内核总线判优、存储器访问时延、高速缓存一致性管理、同步以及 IPC 等多内核开销的影响,典型加速性与理想条件相距甚远。Navigator Runtime 消耗的开销极少,以尽量接近理想加速性,实现多内核性能的最大化。
以 LTE 上行链路物理层处理为例,串行代码可细分为 1,024 个工作任务用于实现天线数据处理、通道估算以及均衡等。平均每个工作任务有 4K 输入数据及 2K 输出数据驻留在共享存储器中。Navigator Runtime 将用于调度这些工作任务并分配给 8 个不同的内核,故加速性的计算如下:
8 内核加速性 = 采用本地 L2 存储器中的数据单内核串行执行代码的时间 ÷ 采用共享 DDR3 存储器中的数据 8 内核并行执行的时间
在并行 8 内核执行示例中,在处理前可分配多个导航器数据包 DMA 通道将 DDR3 中的数据预加载到本地 L2 存储器中,并在处理后将数据从 L2 返回至 DDR3,就像为降低存储器访问时延的 CPU 高速缓存运行一样。结果所测得的 KeyStone 器件的加速性为:在 3.2 万个周期的工作任务中,从 8 内核 KeyStone 器件中测得的基准数据可实现 7.8 的加速性,而在 1.6 万个周期的工作任务中,其则可实现 7.7 的加速性,非常接近理想的 8 加速性。与 KeyStone I 相比,KeyStone II 中的导航器已得到了明显的改进:4倍uRISC 引擎数量可实现更多的调度资源,而数据包 DMA 通道、硬件队列以及描述符数量翻番,则可提高执行吞吐量。
图 4 为 KeyStone Navigator Runtime 在各种工作任务量情况下,2 至 8 内核的实际加速性与理想加速性的比较。
图 4:采用 Navigator Runtime 实现的多内核加速性
此外,TI KeyStone II 架构还可为所有异构内核提供 6MB 的片上共享存储器(MSMC 存储器)容量。MSMC 的存储器访问性能非常接近 L2 存储器访问性能。当数据存储在 MSMC 中时,无需使用导航器预加载和后存储数据,便可实现与上面情况类似的加速性。与其它可选解决方案相比,大型片上共享存储器可利用低系统时延为多内核性能带来独特的优势。
评论