MIPS多线程

当今包括智能手机、平板电脑、IP机顶盒、智能家用网关和SSD存储设备在内的各种嵌入式设备的功能性、互联性和应用的丰富性都在不断升级。这些功能先进的设备拥有巨大的需求空间,随之而来的也有各种特有的挑战。片上系统 (SoC) 供应商和原始设备制造商 (OEMs) 们必须以尽可能低的成本创造高产量,满足各种富有挑战性的性能要求,针对时延敏感的流量支持“服务质量” (QoS) 技术,尤其是在要求超低功耗的移动应用中,还必须对功率损耗进行管控。在如此大需量的中端应用领域保持性能、功率损耗和成本之间的平衡,这样激烈的挑战前所未有。

为应对这些挑战,SoC供应商们有几种选择。提高处理器的时钟频率,从而大幅提升性能;但这并不是最理想的解决方案,因为它也大幅加剧了功率损耗。另一种选择是采用多核,以此分散处理负载,进而实现性能提升。但这种方法可能因IP授权、生产 (因硅芯片尺寸较大) 和功率损耗而导致成本增加。

还有第三种选择是硬件多线程 (MT),包含于MIPS架构和若干MIPS内核 (包括我们全新的interAptiv™内核)。MT能够让一个单处理器内核在SMP操作系统中表现得像两个独立内核一样。 此外,这两个虚拟处理器能够支持多个操作系统或者一个操作系统和一个“裸金属”环境的结合。这种情况下,处理负载便被分配至对于操作系统是两个内核的载体上。有了多线程内核,核心面积的增幅就相对较小,因此无需再为增加第二个内核而支付许可费或版权费。在多核系统中,MIPS第二代“同步管理器” (CM2) 集成了一个L2高速缓存,能够同时缩短延时并增加带宽,从而提升多核性能。 CM2支持单个同步多处理器系统中多达4个interAptiv CPU或8个虚拟处理器。

多线程技术

每一个多线程的MIPS内核能够支持多达两个VPE,两者共用一条流水线,也共享其他硬件资源。然而,由于每一个VPE都包含一份完整的处理器状态 (如同软件系统看到的一样),所以每一个VPE对SMP Linux操作系统而言都像是一个完全独立的处理器。对于更细粒度的线程处理应用,每一个VPE均能够支持多达9个TC,它们分配在2个VPE上。所有TC共享一个执行单元,但是每一个TC都有自己的程序计数器和内核寄存器文件,因此每一个TC都能处理软件的一个线程。

MIPS MT架构还可向线程分配处理器周期,并可通过选配的“服务质量” (QoS) 管理块设置相对的线程优先级。这启用了两种可决定整个总线中信息流动的优先机制。第一种机制使用户能够将一个线程设置为优先于另一个线程。 第二种机制用于按照时间循序渐进地将指定比例的周期分配至特定线程。两种机制结合使用能够使带宽被有效分配至线程集,并可更好地控制延时。在实时系统中,系统级的决定至关重要,QoS块有助于提升系统的预测能力。高级系统的硬件设计师可以换掉由MIPS Technologies提供的标准QoS块,以专门为其应用调整过的块取而代之。

目前的单线程微处理器在等待访问内存时浪费了太多周期,极大地束缚了系统的性能。多线程的应用提升了处理器的使用,从而抵消了内存延时的影响。当一个线程拖延时,其他线程会被立即送入流水线并执行,进而大幅提升应用吞吐量。用户可为实时任务分配专用处理带宽,使服务质量 (QoS) 得到保证。MIPS的MT技术可持续监控线程的进程,并动态地采取校正措施,以满足或超预期满足各种实时需求。在数据相关的延时或高速缓存缺失期间,一条处理器流水线通过线程切换可实现80-90%的利用率。这些都会最终改善移动设备的用户体验,因为响应性得到了大幅提升。

文档

用于MIPS32架构的MIPS MT模块01.12
用于microMIPS32架构的MIPS MT模块01.12
MIPS MT工作原理01.02

搜索