中电网 click here 加入收藏
设为首页
EN | 繁体
用户:
密码:
          登录      注册
  新闻中心 最新产品 设计应用 在线座谈 紧缺人才培训 研讨会 在线商店 解决方案 电子百科 技术论坛
  首页 新闻中心 最新产品 设计应用 在线座谈 紧缺人才培训 研讨会 电子商城 解决方案 电子百科 博客 技术论坛
空白
 
空白
   您现在所处的位置: 首页 > 嵌入式系统 > 并行嵌入式系统 > 正文
有效利用RTOS编程概念支持先进的多线程架构
2008年6月24日 11:44     
像MIPS技术公司最新的MIPS32 34K内核这样的多线程架构正吸引着越来越多的关注,这是因为这种架构无需增加太多的芯片资源或功耗即可获得可观的性能增益。这种硬件多线程的关键优势是,它能使用处理器在等待缓冲回填的空闲周期处理其它线程的指令。

使消费类设备应用程序适应多线程环境的代价一般很小,因为大多数程序已经设计为成组的半独立线程。应用程序线程可以分配给处理器中用于处理单线程的专用硬件资源。多个线程可以被同时分配给这样的硬件,并通过共享CPU周期获得最大的效率。

嵌入式运算面临性能障碍

消费类设备和其它嵌入式计算产品的制造商正在增加Wi-Fi、VoIP、蓝牙、视频等各种新的功能,以往功能的增加都要靠大幅提升处理器的时钟速度来实现。台式机的时钟速度目前已经增加到3GHz以上,即使嵌入式设备也接近GHz级。

但在嵌入式应用领域,这种方法很快就失去了可行性,因为大多数设备的运行收到功耗和资源的约束,这些都限制了处理器速度的进一步提高。时钟周期速度的提高将显著地增大功耗,因此对越来越多的嵌入式设备来说高周期速度将不大可行。另外,处理器速度的进一步提高并不能带来相应的性能改善,因为存储器性能的提高跟不上处理器速度提高的步伐,如上图1所示。

处理器速度已经比存储器快很多,在许多应用场合处理器有一半以上的时间在等待缓存行(cache line)回填数据。每当缓存丢失(cache miss)或需要片外存储器访问时,处理器就需要从存储器加载缓存行,将这些字写进缓存,再将旧的缓存行写进存储器,最后恢复线程。

MIPS公司指出,每千条指令接受25次缓存丢失(对多媒体代码来说是一个合理的值)的高端可综合内核如果必须等待50个缓存填充周期,那么将有50%以上的时间处于停止状态。由于处理器速度仍在不断提高,而且比存储器速度的提高幅度大得多,这类问题将变得越来越突出。



图1:处理器速度超过存储器。

多线程技术

多线程技术解决了这一难题,它可以利用处理器原本用于等待存储器访问的空闲时间处理多个并行程序执行线程。当一个线程停下来等待存储器响应时,另外一个线程会马上提交给处理器,从而保持运算资源的充分利用。

值得注意的是,传统处理器不能采用这种方法,因为它需要大量指令周期才能完成线程之间的切换。要想使这种方法顺利工作,多个应用程序线程必须立即有效,并能逐周期运行。

34K处理器是来自面向消费类设备市场的嵌入式处理器主要提供商的首个多线程产品。每个软件线程在线程环境(Thread Context, TC)上执行,一个TC包括一整套通用寄存器和一个程序计数器(program counter)。

每个TC都有自己的指令预取队列,所有队列都完全独立。这意味着内核能在线程间逐周期地进行切换,因此可以避免软件中产生开销。增加更多的TC只需增加很少的额外硅片。TC共享大部分CPU硬件,包括执行单元、ALU和缓存。而且,增加一个TC并不要求CPU拥有另外一个OS软件运行CPU所需的CP0寄存器拷贝。

一组共享CP0寄存器以及与之相关的TC即组成一个虚拟处理单元(VPE)。一个TC运行一个线程,一个VPE管理一个操作系统:如果有两个VPE,那么就可以有两个独立的操作系统,或一个SMP风格的操作系统。带一个TC的VPE看起来就像是传统的MIPS32架构CPU,并且完全兼容MIPS架构规范-其实就是一个完整的虚拟处理器。

34K内核最多可以有9个TC和2个VPE。TC到VPE的联系取决于运行时间。默认情况下所有准备执行的TC都平等分享处理时间,但34K内核也能在某个特殊要求线程可能会“挨饿”的情况下让某个程序影响线程调度,也就是说软件可以控制每个线程的服务质量(QoS)。应用软件与硬件策略管理器(Policy Manager)互动,策略管理器向各个TC分配动态改变的优先级。然后由硬件分发调度器将线程逐个周期地分配给执行单元,从而满足QoS要求。

在像34K这样的多线程环境中,性能可以大大地提高,因为只要一个线程处于等待存储器访问状态,另外一个线程就会占用空闲下来的处理器周期。上图2表明了多线程是如何加快程序执行速度的。当只有线程0运行时,13个处理器周期中只有5个用于指令执行,剩下7个全部在等待缓存行的回填。在这种使用传统处理方式的情况下效率只有38%。



图2:多线程提高了管线效率。

增加线程1就可能使用上述5个用于等待的处理器周期。现在13个处理器周期中用到了10个,效率提高到77%,与最基本情况相比速度加快了一倍。增加线程2后可以完全加载处理器资源,13个执行指令周期可以全部用上,效率达到100%。相比基本情况速度提高263%。

采用EEMBC性能基准的测试表明,34K内核与24KE系列产品相比,只用两个线程就可以提速60%,而硅片尺寸只增加14%,如图3所示。



图3:EEMBC基准性能例子表明只用两个线程性能就有60%的提高。
[1]   [2]   页 下一页
   基于ARM Linux的图像采集与蓝牙传输
   一种8位嵌入式RISC MCU IP核数据通道模型设计
   基于FPGA的嵌入式ASIP软核设计与实现
   基于Qt/E的嵌入式GUI的研究及其移植
   μC/OS-II的多任务系统实时性分析与优先级分配
   嵌入式存储技术在SoC设计的应用
   使用双处理器延长电池寿命
   优化移动多媒体传输链的功耗
用户名:   密码:   
匿名发表
 
空白
技  术  频  道
        嵌入式系统     电源管理
        3G手机     汽车电子
        数字电视     消费电子
        传感器     通信技术
        工业控制     测试测量
        可编程逻辑     中国RoHS
        DSP与MCU     无源元件
        电子制造     模拟电路
空白
2008年4月10日   10:00-12:00
LaserStreamTM - 采用优化的低功耗设计的新一代导航传感器
座谈公司:Avago
2008年5月20日   10:00-12:00
了解Altera 首推40-nm产品组合
座谈公司:Altera
空白
11月14日:
2007中国电子元件领军厂商评选活动暨“电子元件领军厂商”颁奖仪式
空白
宽带路由器  可视数据  高端路由器
软件路由器   静态路由表   电动门锁
数据链路交换   ATM地址   无线路由器
请您来编写词条                     更多>>
NGI与IPv6
软交换与IMS技术
3GPP核心网技术
网络管理(第3版)
      博客
   nxp-lpc23**学习笔
   资深人士对嵌入式的入门看法
   数字电路一些问答
   HDL设计探究
   PADS新手的一点心得和技巧
   硬件开发之路
     BBS
   异步FIFO结构(极品资料,
   Intel USB2.0 U
   OSBDM的上位机烧写程序,
   如何正确的使用Cyclone
   富士通MB89F202 中文
   C6000 FFT编程指南(
空白
关于我们   |   网站导航   |   广告招商   |   联系方法   |   专家约稿   |   友情链接
许可证号:粤ICP010067
Copyright © 2000-2007 ChinaECNet All Rights Reserved
Tel: 010-82888222, 0755-83243191
Fax: 010-82888220, 0755-83243291