完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
多线程是一种基于硬件或软件的处理技术,它的主要目标是利用计算工作负载的并发性来提高性能。多线程也可以用来区别各种任务,以便将优先权分配给如语音、视频或关键数据等对时间更加敏感的流量。
|
|
相关推荐
5个回答
|
|
|
|
|
|
今天市场上有许多多线程处理器,英特尔公司已经将超线程技术引入高端计算应用领域。此外,其他许多SoC制造商,如Broadcom、Lantiq、Mobileye、NetLogic Microsystems、PMC-Sierra、Ralink Technology,MTK和Sigma Designs也交付了上百万个采用多线程处理器的产品。许多这样的SoC都采用了基于业界标准MIPS架构的多线程处理器核心,包括MIPS32 34K系列,支持多线程多核心的MIPS32 1004K系列,以及增加了ECC、电源管理和虚拟地址扩展的多线程多核心的interAptivTM系列。目前硬件多线程已经成为主流应用,并被视为SoC设计中实现最佳性能的有效方法。
|
|
|
|
用多线程提高流水线利用率
如前所述,增加在单线程处理器的IPC是一个主要目标。通常情况下,即使是很高性能的处理器也存在需要花费很多时间等待数据而使流水线空闲的情况。带有共享内存系统的先进处理器通常需花50%的时间等待数据在缓存未中(cache miss)后返回,等待时间可能会持续几十个周期,在极端情况下甚至是数百个周期。无论数量多少,处理器在此期间做的都是无效工作。除此之外,一些诸如分支误判,使用读取数据和其它的指令依赖操作也会使流水线闲置。多线程处理器可以在多个线程之间切换,空闲的周期被来自其他线程的有用指令填满从而避免周期浪费,最终获得更好的流水线利用率进而提升系统的吞吐量。 确保线程切换效率的一个关键环节是怎样进行线程相关信息或上下文的管理。当映射到一个线程时,每个任务都有相关的上下文信息,如程序计数器和寄存器文件等,这些信息是以硬件加载和更新的。在单线程处理器中,由于处理器在线程之间切换,这些上下文必须导入(swapped in)或导出。线程之间变换需要有保存现场和恢复现场等的额外操作,这种负担可能会变得非常繁重,特别是高语境(high context)切换。多线程处理器储存每个硬件线程的完整上下文资源,因此线程切换时,无需保存现场和恢复现场的操作,从而保证了线程或上下文切换时的零周期开销。 图2 多线程流水线示意图 图2显示了多线程是如何提高流水线利用率的基本机制,图中三个线程在不同的时间都出现了缓存未命中。在线程暂停(stall)期间,其他线程在同一条流水线上做着有用的工作,从而增加了IPC。 MIPS多线程技术 MIPS科技的多线程技术基于两个层次框架,涉及虚拟处理单元(VPE)和线程上下文(TC),支持每个周期的线程切换。 图 3 MIPS多线程结构示意图 每个多线程核心最多支持两个VPE,它们共享其他硬件资源中的同一条流水线。不过,由于每个VPE有自己针对高速缓存的TLB,它们可作为SMP Linux操作系统的两个独立处理器出现。对于更细粒度的线程处理应用,每个VPE可以支持多个TC。这些TC共享一个执行单元,但各有各的程序计数器和寄存器文件,以便每个TC都可以处理来自软件的线程。 MIPS多线程架构也允许为线程分配处理器周期,并利用一个可选的服务质量(QoS)管理块设置线程优先权。这有助于实现两个优先机制,确定总线上的信息流量。第一个机制允许用户让某一个线程优先于另一个。第二个机制可以根据时间的变化为特定线程分配一个指定的使用率。这两个机制的结合可以有效地给线程组分配带宽,更好地控制延迟。在实时系统中,系统级的决定是非常关键的,而QoS块有利于改善系统的可预测性。图 3展示了操作系统、VPE、TC和其它处理器硬件之间的关系。 |
|
|
|
interAptiv™ 处理器
与前代的34K、1004K等内核一样,interAptiv核心实现了MT ASE(多线程应用扩展),并在成本和功率方面带来了同样高的性能和效率。除此以外,interAptiv核心还具有支持多核、功耗管理、错误校正(ECC)和虚拟地址扩展(EVA)等功能。 interAptiv处理器支持最多四个核心,每个核心都可以配置2个VPE,即可以在一个Cluster内支持最多8个符合缓存一致性的虚拟处理器。由于虚拟处理器对一个SMP的操作系统来讲,相当于一个单线程的物理处理器,因此对他们的编程并不比编写一个不支持多线程的多核处理器更难。 在interAptiv中,多个内核通过第二代的一致管理单元(CM2)连接在一起,以保证每个CPU L1高速缓存之间的一致性。CM2集成了多核共享的二级缓存,从而可以大大减少读取延迟,并极大的帮助提高性能,特别是那些需要经常访问存储器的应用。随着这些应用趋向于用多核实现,这种减少读取延迟的能力也将扮演更加重要的角色。 CM2系统有一个可选模块IOCU,为来自I/O外围设备的数据传输提供一致性,从而减轻了一部分软件的工作,获得额外的性能提升,而传统上都是交给软件去解决IO一致性的问题。 CM2还包括一个全局中断控制器,支持最多256个中断,并将它们分配到核心,甚至是每个核心的硬件线程。 CM2中的EJTAG和具有“一致性感知”的程序/数据跟踪(trace)模块,为系统提供了同步的可见性,其通过开发工具对系统中的CPU核心和一致性单元进行分析来实现。 与上一代多线程处理器相比,interAptiv系列处理器还包括一些诸如功耗管理、错误纠正(ECC)和虚拟地址扩展(EVA)等增强特性。功耗管理的特性包括可在总线请求未完成时关闭核的时钟、实现对L1 Icache的路的智能选择以及可对L1 Dcache 32比特数据的访问。ECC指的是增加了L1 Dcache和数据Scratchpad RAM的自动纠错能力。EVA指在用户模式或内核模式支持最大3GB的虚拟地址空间,以适用于那些需要大的系统或用户地址空间的场景。 图4 interAptiv顶层架构 多线程应用实例 当决定多线程系统是否适用于某个特定应用时,设计人员需要考虑以下几个因素。首先,设计人员必须考虑软件和所需的功能集,包括不同的任务、这些任务可能被划分的方式、每个任务的性能需求、不同任务的总线交互、对诸如多媒体等任务的特殊需求以及其他方面的考虑。其他重要的考虑包括任务、安全、当然还有功耗和成本的协调程度。 不用说,分析往往不是直接的,因此很好地理解优先级至关重要。例如,如果目标是以最低的成本实现最高的IPC,设计人员就可以创建多线程系统,利用单个内核中多个线程,并使其运行在最高频率下。如果功率是最关键的,设计人员可以选择将任务分布于多个内核的多个线程,并降低频率以减少功耗。基于MIPS的多线程系统关键在于其可扩展性,既可以帮助设计人员尽可能达到最高的性能,而当性能不是最优先考虑时,又可以缩减规模。 另一个例子是,一个系统可能需要运行2个操作系统,同时要满足非常严格的QoS和成本限制。设计人员可以利用两个VPE运行软件,其中一个运行RTOS,另一个运行bare iron,同时完全隔离语音或视频等QoS敏感的应用。这些都可以在不运行第二个内核的情况下实现。以下例子的使用模型已经部署在用于汽车和网络的基于MIPS多线程处理器的SoC中,证明了广泛的应用都可以受益于多线程。 1.汽车驾驶辅助系统 第一个例子来自基于视觉的驾驶辅助系统(DAS)的SoC领先供应商Mobileye。图像和视频分析在性能和成本方面的进步使这些技术开始进入消费市场。但是,对这类技术的不断改进是一个非常艰巨的任务。例如,其二代辅助驾驶芯片的EyeQ2使用了34K处理器的多线程功能,大幅提高了其视觉系统(原本基于单线程内核)的性能和效率,系统接收来自摄像头的数据,查找图像中的元素,生成车道偏离、前向碰撞、视觉/雷达信息融合及行人侦测等警告信息。 EyeQ2 SoC系统采用一系列连接外围设备和主CPU总线的图像处理引擎来提供和接收实时数据。在这个系统中,大量的数据和指令从CPU传输到图像处理引擎,再加上有指令缓存未命中等因素,成为单线程CPU无法解决的极具挑战性的瓶颈。事实上,其上一代芯片EyeQ1的IPC仅为0.3。考虑到其性能需求,如果EyeQ2采用的是单线程架构,要么整个系统变慢,要么跳过数据处理—这样的处理方法用容易导致导致功能不正确。增加CPU时钟速率则加剧了这一问题,因为这只是增加了处理器暂停的频率。此外,增加的内核又使总线竞争加剧,从而影响实时带宽。 通过仿真,设计人员的结论是,包括八个图像处理引擎的整个系统可以通过一个多线程系统管理多个操作的方式获得性能提升。他们最终采用了一个四线程34Kf内核与八个图像处理引擎互动。采用这种架构将IPC最终从0.3提高到0.9,其中调整和优化关键线程的QoS管理器为IPC提升起到了关键作用。另外,有了如此高的IPC,提升CPU频率对提升整个系统的性能也更有意义。事实上,利用其多线程和其他架构的改进,供应商只需将频率从110MHz适度地增加至166MHz,同时维持3W的功耗(这是前一代产品的功耗),就能够实现其性能目标。此外,第二个34Kf内核可以用来支持用户的专有算法。这两个处理器线程之间的通信是通过对线程间通信块(ITU)进行修改来实现的,进而形成了具有一致性的系统。事实上,Mobileye后续的基带系统EyeQ3到EyeQ5均采用了基于MIPS的多线程系统,以确保设计能够满足高性能和低成本的目标。 2.宽带CPE/住宅网关 住宅网关是另一个面临日益集成的系统。宽带客户端设备已经发展到不仅是提供DSL、有线或PON等宽带服务等基本接入的调制解调器设备。它们已成为集成式住宅网关或集成式接入设备,包括路由/交换、双绞线/同轴/电源线/WiFi网络功能、安全、USB和VoIP支持等,以及基本的调制解调器功能。某些架构还集成了存储功能,其中的网关可作为媒体服务器使用。这种集成使网关系统的设计极具挑战性,而多线程可以提高性能和/或改进这些设备的整体架构。 无线家庭网络和宽带接入半导体市场的全球技术领导厂商Ralink Technology(已被MTK收购)在网关中成功部署了基于MIPS多线程处理器的SoC。ADSL IAD是Ralink的首个基于34K内核的芯片,目前已批量生产,并已成功部署在欧洲电信运营商的网络中。多线程已被证明非常适合这个三网融合系统,因为它有助于更有效地运行多个应用。此外,通过使用虚拟处理单元(VPE)来隔离对时间敏感的流量是保证确定性响应的关键。该SoC采用一个34K内核,包含两个VPE和四个线程(TC)。第一个VPE即VPE0执行三个线程,支持WLAN、以太网和USB处理,第二个VPE即VPE1执行一个线程,支持ATM和VoIP。通过这个架构,Ralink能够为单个设备中的多个应用程序提供高效的确定性VoIP响应和支持。 |
|
|
|
多线程的未来—同步多线程(SMT)
SMT是MIPS处理器多线程的增强版本,使用SMT,不同线程的多个指令可以在同一个时钟周期内被发送到执行流水线。 为了更好地理解SMT的优点,让我们首先考虑一个具有单个执行流水线的非线程处理器。为了在这种情况下提高性能,比如在同一时间执行多个指令,设计人员可能会首先将执行流水线的数量增加到两个,但是,由于指令的依赖性和可能的缓存内存未命中等原因,性能的增加将是非线性的。也就是说,希望在硬件执行资源的效率提高了一倍的同时,性能也有类似的提高,但结果往往只有大约1.3倍的改进。 因此,为了增强性能,其他技术如“乱序执行”或“预测执行”(例如:预取和分支预测)等可以与多个执行流水线一起使用,以尝试将IPC增加到接近2倍。不幸的是,这种技术通常有相当大的面积、成本和功耗损失。因此,这些技术通常应用在那些追求性能,而对面积和功耗不那么敏感的设计中。 相反,硬件多线程提供了一种不同的方法来最大化执行效率。它通过使用替代工作负载,而不是使用指令乱序执行和预测执行等需要大量的逻辑和缓冲区的技术来实现IPC改进。因为同步多线程能够有效地从并发的独立线程中插入指令,因此可以更好地填充到多个执行单元流水线。这种方法能够实现接近2倍的性能提升,并且更节省面积和功耗。 同步多线程技术已经用在了MIPS家族的I6400和I6500处理器,并且会继续在后续演进的处理器中使用。通过这项技术,不同线程的多个指令可以在多个执行流水线上同时执行,根据应用程序的特性,IPC也可以得到非常显著的提升。 同步多线程为应用于消费电子和移动设备等基于linux的处理器提供了显著的性能优势。标准的SMP Linux可以将任务映射到虚拟处理器,从而使硬件能够利用多任务操作系统中的并行性。 同步多线程还为包括网络和存储段的应用程序提供了特殊的好处--通过同步多线程有效的处理其高度并发的进程。对于网络的应用程序而言,同步多线程的加入有助于其在进行网络数据通道处理时的性能得到提高,如路由查找、NAT和TCP重新装配等。在存储应用中,MIPS技术的多线程技术可以提高读/写操作的效率,在某些情况可达三倍的提升。 本文小结 硬件多线程是一种已经成为主流的技术,已经有许多芯片供应商基于MIPS多线程设计SoC系统。多线程可以用于任何具有多并发任务,或者是QoS非常重要的系统,除了本文中讨论的网络和汽车应用外,也被机顶盒、高端存储、网络基础设施设备和智能手机等其它厂商采用。随着通信技术、生产力和多媒体技术等的发展,这些设备的复杂性还在不断增长。多线程将是处理多个移动应用(包括一些延时敏感的应用)的理想解决方案。 与采用多核处理并发任务相比,硬件多线程是迄今为止实现IPC和/或QoS性能要求的一个非常完美和成本更低的方法。MIPS致力于通过提供支持硬件多线程的单核和多核处理器产品,帮助用户以最低的成本来开发高性能和低功耗的片上系统产品。 *:已被收购 来源:MIPSTech |
|
|
|
只有小组成员才能发言,加入小组>>
请问下图大疆lightbridge2遥控器主板电源芯片型号是什么?
4463 浏览 1 评论
使用常见的二极管、三极管和mos做MCU和模组的电平转换电路,但是模组和MCU无法正常通信,为什么?
341浏览 2评论
为了提高USIM卡电路的可靠性和稳定性,在电路设计中须注意的点有哪些?
338浏览 2评论
366浏览 2评论
357浏览 2评论
403浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 09:51 , Processed in 1.424032 second(s), Total 59, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号