多核发展势不可挡——ESC上细数支持多核处理的嵌入式工具

时间:2007-05-29
     对多核编程和调试的支持力度正在日益增加——这是不久前在硅谷举行的嵌入式系统会议(ESC)上发出的信号。实时操作系统(RTOS)和工具供应商也正在不断改进以模型为主导的设计、虚拟原型以及C语言编译。 
QNX软件系统公司在会议中发布了一项声明,介绍了其针对多核处理器的安全的存储器和CPU分割功能。分割功能经常出现在安全性非常重要的应用中,因为它能确保CPU时间和存储器所用的资源,并保证当某一部分发生问题或受到入侵时,不会影响应用中的其余部分。 
      “分割目前仅限于单处理器,将分割信息传达给多核系统是一件很困难的事情,因为需要在多个处理器间复制分割信息。”QNX公司产品经理Kerry Johnson指出,“将所有信息转移到多核是项全新的尝试,这需要设计人员灵活地将分割信息映射到多核架构上。” 
      借助QNX公司的多核分割技术,Neutrino RTOS的用户可以将一个处理器分割成两个部分,Johnson指出。当然,用户也可以选择一个分割部分包含多个处理器。该技术可用于具有相似架构的对称多核系统。 
      Johnson表示,上述分割技术可以处理多达8个相同内核,而且针对某些架构,这个数字甚至可以高达32个。目前该技术支持ARM、MIPS、PowerPC和X86处理器。此外,用户还可选用QNX公司现有的“混合多处理(BMP)”功能,该功能将特定的线程或应用锁定在一个特定的CPU内核组内。QNX公司的Momentics套件提供的可视化工具,则有助于优化和调试多核设计。 
      风河系统公司目前也在其Workbench On-Chip Debugging Edition产品中加入了对多核的支持。该产品包含一个可联网、基于JTAG接口的在线仿真器,能支持多核和多处理应用。 

      图:QNX支持多核OS分割 
      “我们可以在单个扫描链上连接多达128个处理器,而且能同时调试多达8个这样的内核。”风河公司片上调试业务部副总裁Sandy Orlando介绍,“它能进行对称或非对称多处理。用户可以在单一调试环境中调试多个内核。” 
支持更多种类的处理器 
      的Workbench 2.6.1 On-Chip Debugging Edition版本能支持更多数量的新型处理器,包括Broadcom SiByte系列中的几款、英特尔Xscale IOP342、飞思卡尔MPC8641D 2.0T以及PA Semi的PA6T-1682M。另外,该版本允许用户在不需要内核指令的情况下调试Linux内核、用户程序和共享库,而且它还提供新的Eclipse插件“浏览”工具。 
      ARM Realview开发环境同时支持单核和多核应用。在ESC上,ARM公司宣布了RealView开发工具套件3.1版的许多新增功能,其中包括首次支持的Cortex-M1处理器。Cortex-M1是针对FPGA而设计的一款ARM产品。 
      Realview 3.1还增强了对ARM CoreSight调试与跟踪技术的支持力度:为调试与跟踪增加多个跟踪数据流,并减少引脚数目;增加了用于ARM Neon SIMD架构的向量化编译器;提供用于微控制器应用的新型microlibC库。新版Realview还支持ARM DSP指令集扩展;性能有了更大的改进,并针对ARM处理器进行了调整;进一步增强了Eclipse项目管理。 
       澳大利亚Hi-Tech Software公司推出了一种新型编译器技术,该技术可能在今后会对多核设计有所帮助,但是目前,其主要瞄准的还是单处理器,特别是MCU。这种名为Omniscient Code Generation(OCG)的新技术,据称可以同时针对所有程序模块生成目标代码,从而提供真正的全局优化。 
     “在编译时,用户不需要逐一模块或逐一功能地检查程序,因为OCG可以查找整个程序。”Hi-Tech公司首席执行官Clyde Stubbs表示。对于拥有多个寻址空间的小型芯片来说,OCG可以帮助实现数据自动化分布;对拥有多个寄存器集的大型芯片来说,OCG可以执行完整的程序分析,并对寄存器分配进行优化。 
        OCG可以检查所有代码模块,收集寄存器、堆栈、指针、对象和变量声明上的数据,并利用这些信息来确保模块间的一致变量和对象声明、优化堆栈和寄存器分配,以及删除无用的变量和函数。 
        Stubbs表示,OCG技术所产生的代码比Hi-Tech公司现有编译器的代码紧凑20%,比竞争对手的编译器代码紧凑50%。“编程器可以编写看起来像标准ANSI C的代码,而不需要任何特别的扩展来处理内在架构。”他表示。 
        OCG适用于Microchip的PIC18 MCU系列以及Cypress的混合信号控制器。Hi-Tech公司还计划增加对所有Microchip其它MCU和DSP的支持,以及对基于ARM7的MCU和8051 MCU的支持。 
        Virtutech是一家为软件开发提供虚拟原型系统的公司,近日推出了新产品Simics VMP。Simics VMP是Simics开发套件中的一个模块,它能够借助英特尔和AMD处理器中的硬件虚拟化功能使代码自行运行。传统上被用于同一服务器以运行多个OS的片上虚拟化功能,被首次应用到软件开发中来,Virtutech公司营销副总裁Paul McLellan指出。 
        Virtutech公司还将推出Simics 3.2,该版本增加了一些新功能,可以帮助用户在现有流程中集成虚拟化软件开发。新版本改进了与第三方调试工具的集成,并增加了对符号表的支持。 
以模型为主导的开发 
       “今年ESC的主题仍然是多核对产业的影响。”McLellan指出,“想在多核系统上简单、低成本开发高质量软件,的方法就是采用虚拟化软件开发。” 
       想要简便地创建复杂软件,方法之一就是利用统一建模语言(UML)或系统建模语言(SysML)进行以模型为主导的开发。在ESC上,Telelogic AB公司展示了其Rhapsody系列的增强性能,而改进的目的正是为了更好地为以模型为主导的开发服务。改进后的Rhapsody 7.1更加紧密地符合SysML1.0的要求,能更好地支持灵活的开发流程。新的Rhapsody电信包(Telecom package)中囊括了最适合电信使用的工具集。Telelogic SDL Suite 6.0为基于规范与描述语言(SDL)的系统提供了改进的内核架构。 
        Mentor Graphics公司为Nucleus RTOS的Inflexion Platform UI提供了新型应用编程接口(API),以简化用户接口的开发。该API能在无需修改嵌入式设备固件的情况下改变接口,该公司嵌入式系统部门总经理Neil Henderson表示。 
       S2 Technologies则升级了自己的Stride工具集。该工具集主要用于在开发过程的早期阶段进行嵌入式软件测试和验证。Stride 2.1增加了在目标应用上控制和自动运行C/C++测试代码的能力、增加了自动生成测试脚本的功能、并增强了用户接口。 
       另外,Aonix公司演示了采用Perc Ultra和Perc Pico工具集的全Java代码解决方案。对于计算密集型算法来说,其速度比采用C代码的同等Java程序要快得多。 
上一篇:第二大LED厂商落户厦门
下一篇:打响“反击战”——英特尔CPU计划出炉

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。