• IIANews微官网
    扫描二维码 进入微官网
    IIANews微信
    扫描二维码 关注微信
    移动客户端
  • English
2026全景工博会 菲尼克斯电气二级-以太网
I/O 设备

MIPS将多线程概念引入到嵌入式领域

  2003年12月05日  

作者:张国勇

MIPS技术公司在嵌入式处理器大战中亮出新招:它宣布将把硬件多线程引入其32位和64位架构中作为一种可选的扩展功能。该公司的这项计划目前还只限于架构定义阶段,而采用该技术的实际CPU内核要等到2004年才会问世。但通过把一种领先的概念从服务器领域引入系统级芯片(SoC)设计,MIPS突然使多线程成为嵌入式应用内核的一个热点话题。

在2003年微处理器论坛上,MIPS公司描述了所谓的多线程专用扩展(MT-ASE)架构。从概念上讲,MT-ASE类似于IBM公司Power-5架构或英特尔公司Pentium超线程架构提供的硬件多线程支持。这项对处理器架构的补充允许CPU在高速缓存器中同时维持几个独立的程序线程,而且可以在最多几个时钟周期内从一个线程切换到另一个线程。一个硬件调度器将决定在执行每条指令时,哪个线程将被访问。

在一条指令通过处理器时,与之相关的标签指明了该指令是从哪条线程取出的。CPU具有多组通用寄存器和控制寄存器,每组寄存器被分配给一个线程,而标签告诉硬件在执行每条指令时使用哪些寄存器。当一个线程里的某条指令引起一次停顿时,例如一次高速缓存遗漏(cache miss)、一次分支预取错误或一次外部总线周期,硬件可以迅速切换到另一个线程,从而避免了顺次切换的开销。其结果是,原本会因一次停顿而浪费的许多时钟周期就可以用来执行其它线程的指令。

不仅是提高吞吐量

在服务器领域,多线程被视为一种掩盖存储器延迟的方式。随着CPU的时钟频率达到GHz级,它在一次指令遗漏后用来填满高速缓存管线的时间可能相当于几百个时钟周期。通过切换线程,CPU能够有效地利用等待时间;事实上,高速缓存器遗漏完全不会造成阻塞,所以因高速缓存遗漏而损失的平均时间可以接近于零。

在嵌入式系统中,因为其时钟频率要低得多,所以高速缓存遗漏造成的损失也相对要少很多。但是在当前工作线程因等待填充高速缓存管线而陷于停顿时,如果硬件线程管理器能够在这几个时钟周期内插入几条有用的指令,那么消除等待时间仍然是值得的。当然,系统还会有其它延迟,特别是慢速外设引起的延迟。

“但是在系统级芯片(SoC)领域,需要硬件多线程还有另一个关键原因,”MIPS公司的产品行销总监Tom Petersen指出。如今的SoC通常会在与CPU内核相连的总线上设计一个DSP内核或其它协处理器。这个附加内核用于执行CPU不能完成的任务,所以当今所有的嵌入式处理器内核事实上都提供了指令集扩展和协处理器接口。这样做是因为单线程CPU,即使在运行一个实时操作系统,也几乎不可能保证信号处理代码所需要的硬实时性能。

“通过采用多线程,设计人员可以将一个线程专用于信号处理,从而保证这项任务得到最低比例的CPU周期。”Petersen表示。尽管这不等同于保证按时完成任务,而且它仍然不是完全确定的(它所保证的是总周期的一部分,而不是任何特定周期),但Petersen坚持认为,它足以满足许多系统的实时要求。

这允许设计人员把控制平面和数据平面处理都转移到单个CPU上,而不必担心操作系统开销、外部中断和高速缓存遗漏等类似情况将影响实时性能。关键任务运行在其自己的虚拟CPU上,对应用代码而言,就好象它在对称多处理(SMP)系统中有一个专用CPU一样。

MIPS向应用程序开发员提供了两种多线程模式。第一种是虚拟处理引擎(VPE)模式,它基本上是重任务线程(heavy threading)。在VPE模式中,每个线程似乎是运行在一个SMP系统中其自己的CPU上。 线程是由一个SMP操作系统发起和终止的,线程之间通过传统的存储器机制进行通信。VPE模式与共享存储器SMP之间的唯一区别是所有线程事实上是运行在同一个CPU上,并由硬件线程管理器来控制哪个线程在运行。

第二种模式能使用若干个任务较轻的线程,并可能具有更高的效率,Petersen表示。这种方案把线程支持机制暴露给应用级。新的MIPS指令允许一个应用程序分出一个新线程,并让CPU切换到另一个线程或终止一个线程。与在VPE模式中一样,每个线程都有其自己的一组寄存器,切换是由硬件调度器来操作的。硬件寄存器决定了线程优先级的细节。但它是由操作软件来跟踪线程,各线程与它们的母进程共享前后关系;如果请求的线程数量超过CPU所能支持的数量,操作软件将提供虚拟线程支持。

SoC应用

MIPS希望它的芯片合作伙伴采用多线程架构,而且有可能发布一个采用MT-ASE的IP内核。“其应用范围包括:增加高端网络应用中CPU的吞吐量,从而不再需要移植到片上SMP;可以消除低端消费类SoC(如用在机顶盒等设备中的SoC芯片)中的DSP内核或协处理器,”MIPS表示。

这种方式既有支持者,也有反对者。Ubicom公司是这种思想的支持者,也是MIPS的一个潜在竞争对手。这家公司的一款专有处理器带有硬件多线程支持,在概念上非常类似于MIPS的MT-ASE。该处理器具有多组寄存器、一个硬件调度器以及驱动该调度器的硬件分配表。

Ubicom的首席技术官David Fotland认为,多线程的延迟掩盖作用只有在服务器领域才是一个重要问题。“在SoC领域,你实际上不会遇到很大的存储器延迟,”他说,“如果你的确发现存储器延迟将成为一个潜在问题,那么当今任何SoC设计者都会在芯片上添加一个小RAM来解决它。”

但Fotland表示,多线程已经在Ubicom指定的用途中取得巨大成功,即创建一个实时背景,以允许通过执行代码来模拟外设。据他介绍,Ubicom最近推出的一款芯片利用CPU来执行以太网媒体存取控制器(MAC)的大部分功能,从而把专用MAC硬件减少到只剩下I/O引脚。

Ubicom模式交错执行来自不同线程的指令,以便把实时外设任务与运行在Linux等操作系统中的应用程序混合起来。从应用程序开发员的观点来看,他们应该会希望采用这种多线程模式,这些线程看起来就像一个SMP系统中的任务。

其他嵌入式处理器供应商视多线程为未来派的概念,或者认为它完全不适合于SoC领域。那些拥有紧凑内核的供应商表示,根据90nm或者130nm设计规则,带有多线程硬件支持的单内核与带有片上SMP的多内核在裸片面积和成本方面的差异相对整个SoC而言是很小的,而大部分设计人员感觉SMP方式更简单。此外,在独立的处理器上保持不同的线程会增加电源管理的负担。

一个问题是存储器带宽管理。高速缓存和SDRAM都对访问模式很敏感:如果大部分访问不是发生在一个相对较窄的地址范围内,高速缓存的效率将会降低;如果不能以最低预充电和页遗漏延迟的模式访问,SDRAM的吞吐量会显著降低。

MIPS公司的Petersen承认,如果不谨慎处理,多线程有可能把存储器优化问题复杂化。他举例说,相互竞争的线程有可能拖垮一个高速缓存器。但他指出,在某些情况下,当一个线程处理控制平面任务而另一个线程处理流数据时,那么很可能不存在互相干扰。

通过向设计人员提供一条从多个大型硬件内核移植到单个带硬件多线程的CPU内核的途径,MIPS和Ubicom公司提供了一种有可能节省裸片面积的重要方法。它对功耗的影响尚不清楚,因为从总体上看,对于一个给定任务,基于指令的引擎比硬连线的处理器能效低。

它对软件开发人员的影响也还不完全清楚。尽管Ubicom和MIPS都试图使他们的应用级软件模型类似于SMP处理器的模型,但差别依然存在,尤其是MIPS决定在一个模式中暴露线程管理的细节。


最新视频
以AI赋能仿真技术 金发科技携手西门子提速汽车材料研发   
教程 | 和利时脱硫工况异常处置Agent   
绿电直连 算力新局——AIDC算电协同线上沙龙
工业 AI 赋能电子/半导体产业 智能制造升级
PTC Creo 13 设计未来型产品
PTC Codebeamer
专题报道
《我们的回答》ABB电气客户故事
《我们的回答》ABB电气客户故事 ABB以电气问题解决专家之志,回答未来之问。讲述与中国用户携手开拓创新、引领行业发展、推动绿色转型的合作故事,共同谱写安全、智慧和可持续的电气化未来。
企业通讯
2026全景工博会
2026全景工博会

2026中国国际工业博览会(简称“中国工博会”)定档于2026年10月12日-16日在国家会展中心(上海)举办。

探索工业AI未来——研祥集团智能物联业务新品发布会
探索工业AI未来——研祥集团智能物联业务新品发布会

新型工业化是当前我国制造业发展的核心战略方向,作为工业AI赛道头部企业,研祥通过旗下研祥智能、研祥金码、亿万克三大品牌,

在线会议
热门标签

社区

null /ca/_01-ABC00000000000091104.shtml /ca/_01-ABC00000000000091104.shtml