利用MIPS多线程处理器优化SoC设计

2011-01-20 21:38:59来源: 互联网
  多线程是一种基于硬件或软件的处理技术,它的首要目标是计算型工作中利用并发来提高性能。多线程也可以用于区别各种任务,以便可以将优先权分配给更多时间敏感的流量,如语音、视频或关键数据。而公认的基于软件的多线程技术,如任务切换和基于软件的线程调度已经存在了相当一段时间,很少有人知道基于硬件的多线程的历史。基于硬件的多线程技术其实已经存在了相当长一段时间,其实现可以追溯到20世纪60年代的CDC6600。在CDC6600电脑中,10个硬件线程被用来保证从I/O处理器到约16个外围设备的响应时间。这个例子的处理器运行速度远远超过了许多I/O设备,是一个充分利用多线程优势的典型应用,因为空闲处理时间可以被从线程到线程切换的有益工作所取代。在70年代,Denelcor HEP机是在CPU内,而不是在I/O实际执行线程切换。类似上例,最终结果是每个周期的指令(IPC)有了显著改善。之后10年推出的其他几个系统和学术研究进一步展示了硬件多线程的好处。

  今天的市场上有许多多线程处理器。英特尔公司已经利用其超线程技术将该技术引入高端计算应用领域。此外,其他许多SoC制造商,如Broadcom、Lantiq、Mobileye、NetLogic Microsystems、PMC-Sierra、Ralink Technology和Sigma Designs也交付了上百万个采用多线程处理器的产品。许多这样的SoC都采用了基于业界标准MIPS架构的多线程MIPS32 34K系列内核或多线程、多处理MIPS32 1004K一致处理系统(CPS)。目前硬件多线程已经成为主流应用,并越来越被视为SoC设计中实现最佳性能的有效方法。

用多线程提高流水线利用率

  如前所述,增加一个给定单线程处理器的IPC数量是一个主要目标。通常情况下,即使是非常高性能的处理器也有大量时间闲置,目的是等待数据到达。常见的情况是,带有共享存储系统先进处理器需花50%的时间等待数据在缓存未中(cache miss)后返回。此数据检索的等待时间可能会持续几十个周期,在极端情况下甚至是数百个周期。无论数量多少,处理器在此期间做的都是无效工作。多线程处理器可以在多个线程之间切换以利用这些闲置的周期。这些周期现在可以用来自其他线程的有用指令填满,从而避免未使用的周期白白浪费。这最终将获得更好的流水线利用率并提升系统的吞吐量。

  确保线程切换效率的一个关键环节是怎样进行线程相关信息或语境的管理。当映射到一个线程时,每个任务都有相关的上下文信息,如程序计数器和寄存器信息子集,这些信息是以硬件加载和更新的。在单线程处理器中,由于处理器在线程之间切换,这些上下文必须导入(swapped in)或导出。当在线程之间变换时,需要有与保存和恢复操作有关的额外处理。这种负担可能会变得非常繁重,尤其是采用高语境(high context)切换。多线程处理器支持由每个硬件支持的线程的完整上下文存储,无需保存和恢复操作。这种机制支持切换线程或上下文的零周期开销。

  图1显示了多线程是如何提高流水线利用率的基本机制。在这种情况下,在不同的时间点有三个线程出现了缓存未中。在这些线程暂停(stall)期间,其他线程在同一条流水线上做着有用的工作,从而增加了IPC。

《电子系统设计》

MIPS多线程技术

  MIPS科技的多线程技术基于两个层次框架,涉及虚拟处理单元(VPE)和线程上下文(TC),支持每个周期的线程切换。每个多线程内核多达可支持两个VPE,它们共享其他硬件资源中的一条流水线。不过,由于每个VPE可以有自己针对高速缓存的转换后备缓冲器(Translation Look-aside Buffer,TLB),因此它们都可作为针对一个SMP Linux操作系统的两个独立处理器出现。对于更细粒度的线程处理应用,每个VPE可以支持多个TC。这些TC共享一个执行单元,但各有各的程序计数器和内核寄存器文件,以便每个TC都可以处理来自软件的线程。34K内核多达可以支持分配在两个VPE上的九个TC,在运行时进行优化和分区。利用最小的芯片面积可执行MIPS多线程功能。

  34K内核也允许为线程分配处理器周期,并利用一个可选的服务质量(QoS)管理块设置相对线程优先权。这有助于实现两个优先机制,确定总线上的信息流量。第一个机制允许用户让某一个线程优先于另一个。第二个机制用来根据时间的变化为特定线程分配一个指定的周期率。这两个机制的结合使用可以有效地给线程组分配带宽,更好地控制延迟。在实时系统中,系统级的决定是非常关键的,而QoS块有利于改善系统的可预测性。图2a显示了34K内核中VPE、TC和QoS块的关系。

  1004K CPS是MIPS科技的最新一代多线程处理器。该系统支持多达四个多线程内核,每个内核都可以配置为像34K内核那样支持2个VPE。在1004K CPS中的多个内核通过一个一致管理单元连接在一起,以保持每个CPU的L1高速缓存之间的一致性。一致多内核架构的每个内核的多线程集成允许1004K CPS超过同类单线程多核处理器的总性能。该系统还包括一个可选模块,为来自I/O外围设备的数据传输提供一致性,从而通过卸载作为操作系统一部分、通常运行于软件的I/O一致性方案获得额外的性能。一致处理系统还包括一个全局中断控制器,可以接收多达256个中断并把它们分配到内核,或每个内核内的硬件线程。整个系统采用MIPS L2高速缓存控制器,通过一个扩展的256位宽接口连接到一致管理单元,以优化一致系统和L2高速缓存之间的吞吐量。EJTAG、“一致管控”程序和数据跟踪块完善了系统,通过开发工具为系统中的每个CPU内核和一致单元提供了同步的能见度。

  

[1] [2] [3]

关键字:多线程  单线程  处理器  错误校验码

编辑:鲁迪 引用地址:http://www.eeworld.com.cn/qcdz/2011/0120/article_3098.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
多线程
单线程
处理器
错误校验码

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved