用户中心

资讯 > 嵌入式系统

多核环境中的高效率调试方法

作者:美国风河系统公司 韩青2007.07.05阅读 2023

  毫无疑问,多核多线程是未来处理器的发展方向。回首处理器的发展历程,并行技术从指令级的超标量发展到线程级的超线程或者并发多线程,再到今天处理器级的多内核,总的趋势都没有改变。英特尔、Sun和IBM等大公司目前已经投身到多核或者多线程技术的浪潮之中。当今的网络应用日趋复杂,对性能的要求不断提高,无论是需求推动技术,还是技术激发了新的需求,并行技术都将是未来信息基础设施建设的必然选择。

  对于嵌入式装置而言,多核技术可以提供更高的处理器性能、更有效的电源利用率,并且占用更少的物理空间,因而具有许多单核处理器无法具备的优势。与多核解决方案如影随形的,就是多处理器技术,也就是在同一块电路板或同一个集成系统中包含多个处理器。

  要想充分发挥多核以及多处理器解决方案的潜能,仅仅依靠强有力的芯片是不够的,还需要采用新的编程方法。伴随着新的编程方法,同样也需要新的调试方法和工具,才能确保软件和硬件开发人员在完整的多核系统环境中展开调试工作,同时对“编译—编辑—调试”的流程进行优化。

  在传统上,JTAG调试技术主要是用于硬件Bring-Upwww.cechina.cn,如今也常常被用于配合基于代理的调试(agen

t-based debugging)。然而,在多核和多处理的环境中,片上调试(on-chip debugging)正在扮演着越来越重要的角色,因为这种技术更便于隔离运行在单个或者多个内核中不同软件之间复杂的交互活动,从而帮助开发人员对操作系统或者中间件实施更加有效的调试。

认识多核基本架构

多核处理器在同一个芯片中植入了多个处理器引擎CONTROL ENGINEERING China版权所有,这就可以提供更高的CPU性能、功能特性和分区能力。一般说来,多核有两种实现形式。

  第一,SMP( Symmetric multiprocessing,对称多处理)。在这种情况下控制工程网版权所有,开发人员面对的是单一的抽象化硬件平台,由SMP操作系统来决定具体由哪一个内核来运行哪个任务,其中每个内核都是相同的,而且在同一个操作系统的管理控制之下,共享同一个内存。

  第二,AMP (Asymmetric multiprocessing,非对称多处理)。在这种情况下控制工程网版权所有,各个处理器内核都运行着各自独立的操作系统。这种独立性意味着CONTROL ENGINEERING China版权所有,其中各个处理器内核既可以是同构的,并且运行同样的操作系统,也可以是异构的并运行各自不同的操作系统。

  多核环境显著增加了系统复杂度,因而在对操作系统和与多核相关的硬件进行调试的时候,就必须采用一整套更有效的工具。另外,尽管大家都认为多核就是指在同一个芯片中放入多个内核,但是在实际开发工作中所遇到的多处理问题,实际上不仅仅局限于在单一芯片中的多个内核。事实上,不论这些处理器内核是在同一个芯片之中,或者分布在同一个电路板中的多个芯片之中,甚至同一个系统中的多个电路板之中,开发人员都必须解决好多处理环境中的调试问题。相对于最近出现的单一芯片多核架构,有多个处理器芯片和多个处理器电路板组成的复杂系统已经存在很多年了。因此,多处理架构的调试问题其实早已存在,只是单一芯片内多核架构的普及将多处理系统调试问题更加尖锐地摆在了开发人员面前。

  从这个意义上,多年前就开始从事多处理环境软件开发的厂商就积累了更丰富的经验,在应对多核软件开发方面站在了更为有利的地位。例如Wind River公司经典的实时操作系统VxWorks在多年前最初的设计思路就是基于多处理架构的控制工程网版权所有,因此不论从运行环境还是开发调试工具任何一方面看,对于多核环境的适应能力都比其他工具要强得多。

认识多核调试难点

  多核与多处理技术的融合为系统调试带来了许多新的挑战,因为系统复杂度不断增加,要通过优化硬件和软件来充分发挥其中的性能潜力,难度就更大了。其中最主要的难点有以下几个方面。

* 有效地管理内存和外设等共享资源;
* 在多内核、多电路板和多操作系统的环境中对操作系统和应用代码进行调试;
* 优化JTAG接口并充分利用JTAG带宽;
* 调试单一芯片中的同构和异构多核,进而实现整个系统的协同调试;
* 有效地利用JTAG与基于代理的调试方法,确保不同调试工具之间的顺畅协同;
* 确保多核环境中应用调试的同步机制。

  对于多核JTAG调试来说,有三种主要的技术选择:第一,以单一JTAG接口支持所有内核的调试器;第二,在单一JTAG调试接口中采用独立调试器的JTAG多路(Muxing)技术;第三,JTAG链接器或者可编址扫描端口(Addressable Scan Port)。

  在多核调试中,上述三个技术途径都是在处理同一个核心问题——由SoC厂商所提供的JTAG接口所造成的局限性。为了节省成本,许多SoC厂商都只为芯片提供单一的JTAG接口,而不理会其中包含了多少个内核。对于开发者来说,最大的挑战就是经济有效地使用这些接口来同步多核以及多处理的

版权声明:版权归控制工程网所有,转载请注明出处!
继续阅读

频道推荐

关于我们

控制工程网 & CONTROL ENGINEERING China 全球工业控制、自动化和仪器仪表领域的先锋媒体

CE全球

联系我们

商务及广告合作
任小姐(北京)                 夏小姐(上海)
电话:010-82053688      电话:18616877918
rendongxue@cechina.cn      xiashuxian@cechina.cn
新闻投稿:王小姐

关注我们的微信

关于我们 | 网站地图 | 联系我们
© 2003-2020    经营许可编号:京ICP证120335号
公安机关备案号:110102002318  服务热线:010-82053688