MIPS 多线程架构模块

MIPS在我们的可许可CPU IP产品的多个系列中提供了硬件多线程,提供了一种差异化的高效机制来实现更高级别的性能和/或低延迟的内文快速切换行为。 这些好处不仅限于主要应用处理器(AP),还可以在广泛的细分市场和应用中加以利用,从而可应用在智能手机,数字电视,机顶盒, 网络,通信,汽车,存储和微控制器(MCU)市场领域。

复杂SoC设计

晶片系统(SoC)设计人员一直在努力寻求在其硅片设计中使用的每一代连续处理器中提供更高性能的方法。 不断增长的系统复杂性以支持智能,更复杂的人机界面以及电子交互和互联世界不断增长的带宽需求,推动了这一需求。

对提高性能的需求并不是新鲜事。 但是,仅仅增加处理器的工作频率已不再容易的获得好处。 因此,多核处理已被更广泛地采用-充分支持MIPS处理器以利用这些技术。 MIPS处理器是完全可综合的,因此客户可以根据他们所针对的频率和操作规格,在所选的工艺节点中实现我们的处理器。 相干的多核和多集群版本可用于许多产品系列。

但是,多核当然意味着额外的成本,有时是巨大的。 由于“提高性能”所需的功能可能因应用程序而异,并且变化很大,因此多核不一定是最佳选择。 MIPS在多个MIPS CPU核心产品系列中提供了硬件多线程(MT),这项技术已经在十多年的众多设计中得到了证明,并且会不断发展以提供更大的价值。 MIPS MT提供了其他应对性能挑战的选项,无论是简单地提高总体性能,还是改善对内文快速切换,实时操作或多软件域执行环境敏感的应用程序中的切换/响应能力。

从本质上讲,实现硬件MT的主要目标是实现更好/更高的处理器内核利用率。 MT增强了内核在公共/共享执行管道和计算元素上并行执行不同软件线程的能力。 这是通过复制一部分核心资源来实现的,但其成本和实施完整多核系统所需的功率成本只是其一小部分。

如今,单线程微处理器在等待访问内存时以及在诸如软件分支预测错误,中断服务等事件上浪费了许多周期。这些浪费的周期影响了系统性能。 多线程可以在处理器等待内存时利用处理器完成其他任务,从而掩盖内存延迟的影响。 当一个线程停止运行时,其他线程会立即馈入管道并执行,从而显着提高了整个应用程序的吞吐量。

MIPS CPU中的多线程

MT特性和功能的实际实现在支持它的MIPS系列的不同内核之间有所不同。 基于MIPS32的interAptiv™和基于MIPS64的I6500处理器均支持MT的虚拟处理单元(VPE)/虚拟处理器(VP)级别,其中每个线程VPE / VP看上去都是对称的多处理(SMP)操作系统 (OS)作为单独的核心。 或者,可以在每个VPE / VP上运行单独的OS,例如Linux和RTOS。 由于每个VPE包括软件系统所见的处理器状态的完整副本,因此每个VPE似乎是SMP Linux操作系统的完整独立处理器,包括中断,寄存器集,MMU等。interAptiv处理器家族支持以下实现: 每个处理器内核最多可以有两个VPE,而超标量双发行版I6400和I6500处理器系列可以将此扩展到每个处理器内核四个VP。

对于更细粒度的线程处理应用程序,interAptiv处理器家族包括称为线程内文(TC)的第二级硬件MT支持,它比VPE“轻巧”,可以在用户/应用程序软件级别进行编程,并且 补充了MIPS ISA中的一组指令以利用线程。 一个interAptiv核心能够支持多达9个TC,可以在两个VPE之间分配。 TC共享一个公共执行单元,但是每个TC都有自己的程序计数器和核心寄存器文件,因此每个TC都可以处理软件中的线程。

所有这些都可以提高现有处理器内核的利用率和效率,从而提高整体系统性能。 虽然提高性能在总体上是一件好事,但某些嵌入式应用程序还具有对处理器实时响应能力敏感的其他要求。 MIPS MT支持非常快速的内文切换行为,使其非常适合此挑战。 通用寄存器(GPR)和中断处理资源的复制提供了一种自然机制,可在需要上下文切换的任务上提供极低的延迟,例如服务中断,实时敏感操作或在多操作系统下运行多个操作系统的系统 来宾虚拟化软件环境。 这些特性在诸如LTE / 5G调制解调器,自动驾驶辅助系统(ADAS),引擎控制或其他功能安全性和/或安全性至关重要的嵌入式应用程序之类的各种应用程序中非常重要。

扩展这一优势,通过使用interAptiv处理器系列中的一些补充功能,可以进一步利用MIPS MT内核,在更具确定性的系统设计中提供一流的解决方案。 使用带有内存保护单元的更简单的内存映射选项和/或利用MIPS多线程体系结构中支持的某些服务质量(QoS)线程优先级排序功能,执行本地ScratchPad RAM(SPRAM), 延迟,高度确定性的系统设计。