多核调试新方法探讨

来源 :电子产品世界 | 被引量 : 0次 | 上传用户:tt7506
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  对于嵌入式装置而言,多核技术可以提供更高的处理器性能、更有效的电源利用率,并且占用更少的物理空间,因而具有许多优势。
  要想充分发挥多核以及多处理解决方案的潜能,仅仅拥有高性能的芯片是不够的,还需要采用新的编程方法、调试方法和工具。在传统上,JTAG技术主要是用于硬件调试,如今也常常用于基于代理的调试(Agent-based debugging)。然而,在多核和多处理的环境中,片上调试(On-chip debugging)正在扮演着越来越重要的角色。
  
  多核软件调试的难点
  
  多核环境显著增加了系统复杂度,因此在对操作系统和与多核相关的硬件进行调试的时候,就必须采用一整套更有效的工具。在嵌入式软件开发工作中,多核主要呈现为多处理器的形式,而这些处理器的内核不一定要处在同一个芯片内。不论这些处理器内核是在同一个芯片内,或者是分布在同一个电路板中的多个芯片内,甚至是同一个系统中的多个电路板内,开发人员都必须解决好多处理器环境中的调试问题。
  多核与多处理器技术为系统调试带来了许多新的挑战,因为系统复杂度不断增加,要通过优化硬件和软件来充分发挥其性能潜力,难度就更大了。其中最主要的挑战来自以下几个方面:
  有效地管理内存和外设等共享资源;
  在多内核、多电路板和多操作系统的环境中对操作系统和应用代码进行调试;
  优化JTAG接口并充分利用JTAG带宽;
  调试单个芯片中的同构和异构多核,进而实现整个系统的协同调试;
  有效地利用JTAG与基于代理的调试方法,确保不同调试工具之间的顺畅协同;
  确保多核环境中应用调试的同步机制。
  在多核调试中,主要是在解决一个核心问题一由SoC厂商所提供的JTAG接口所造成的局限性。为了节省成本,许多SoC厂商都只为芯片提供单一的JTAG接口,而不管包含多少个内核。对于开发者来说,最大的挑战就是经济有效地使用这些接口来同步多核以及多处理的调试,而经常用到的就是采用IEEE 1149.1标准Daisy-chain(菊型链)方法。
  在JTAG接口中有4条线:TDI、TDO、TCK和TMS。在多核调试中主要使用TDI和TDO。在Daisy-chain中,前一个内核的输出被连接到后一个内核的输入,以这种方式连接到所有内核。Daisy-chain方法是基于标准的,得到了广泛的应用,并且在所有的多核环境中都是有效的。
  在Daisy-chain方法中,JTAG调试器利用JTAG服务器的软件接口来解决多核环境中经常遇到的JTAG连接受限问题。不论内核位于何处,JTAG服务器都可通过JTAG接口来实现每个内核的编址。JTAG服务器也帮助开发者实现同一个JTAG下的内核同步、进程的起始与停止以及连接的增加和移除,而且不会影响到扫描链中的处理器或整个系统。这种方法可以保持精确的时钟,同时为跨越多个内核的不同操作系统或者同一个操作系统中不同进程的调试提供便利,而Daisy-chain方法的核心目标是JTAG性能和带宽的充分利用。
  Daisy-chain方法中JTAG的主要问题是,在Shift-IR(移位一指令寄存器)阶段发送的数据量取决于扫描链中发出数据的装置数量以及每个设备的IR长度。例如,在一个包含3个装置的Daisy-chain中访问一个8位m寄存器需要24bit的数据量。这类问题对于DR(数据寄存器)同样存在,但由于一个处于旁路模式的装置在Shift-DR阶段实际上只需要1bit的数据,从而使这类问题的影响变得比较小。如果JTAG服务器能够设计得恰如其分,几乎就可以避免对性能造成任何影响。这也正是WindRiver(风河)公司所提供的JTAG解决方案的最大特色。
  
  片上调试是多核调试的利器
  
  单一调试器的主流方法仍然是JTAG多路技术。这种技术对IEEE JTAG标准规范进行了拓展,以便为通过共享JTAG接口连接起来的每个内核提供独立的调试器。在多路技术的支持下,通过对希望调试的内核进行注册登记,开发人员可经由单一JTAG接口访问多个离散状态的内核。这种解决方案的最大优势在于它的连接和调试性能。因为多路技术单独连接到每个内核,因而避免了Daisy-chain方法中所遇到的比特位移(Bit shifting)方面的麻烦,因而在单芯片中的多核系统中具有更高的性能。这种方式的另一个好处是不需要对开发工具进行修改,就可以顺畅地应用在多个开发项目之中。
  多路技术方法所存在的主要问题是,在多内核调试过程中无法同时启动和停止内核作同步应用。如果要停止全部内核,开发人员只能顺序地逐个进行,这就引发了调用延迟问题。调试过程的延迟会导致很难在内核之间运行的操作系统、中间件和应用中找到发生问题的确切位置,特别是当运行在不同内核之中的应用存在相互依赖性的时候,这个问题就更为突出。例如,某个产品包含DSP功能和ARM9内核,其中DSP用来处理视频流,ARM9内核提供文件系统,那么内核的启动与停止的同步将会十分关键。
  如果调试过程中,在ARM内核的启动和DSP的停止之间出现过多的延迟,DSP视频流数据很快就会溢满ARM文件缓冲区,而视频流也将会中止。如果出现这种情况,就很难判断系统的问题出在哪里。而且,多路进程也给开发人员在故障排除时带来了许多新的问题,将会大幅度增加调试时间。
  另外,如果在有多个厂商芯片组成的异构多核环境中进行调试工作,例如处理器来自一个厂商,而DSP器件来自另一个厂商,还会有更复杂的问题需要处理。此时,仅仅依靠多路技术是无法解决问题的,开发人员就需要采用可编址扫描端口(Addressable scan port),这也可能是最后仅有的方法了。
  这种架构需要用到非常特殊的组件,这些组件可以让开发人员把JTAG扫描链分割成多个功能组,并通过唯一的地址来访问每个功能组。这是一种多支路架构,经常被用于底板环境中。这里,可编址扫描链在底板内分别实现路由,使机箱中的每个底板都拥有自己专属的扫描链。这种架构的运行速度受限于可编址扫描端口的速度,典型值是25MHz。
  总之,在多核开发中,JTAG调试可以承担非常有价值的角色,有效地改善“编辑一编译一调试”周期时间。然而,实现这一点的前提是把JTAG调试与基于标准的集成化开发环境(例如EcUpse)紧密地集成起来。最理想的技术方案是,在DaisyChain中采用遵从IEEE 1149.1 JTAG标准的单一的JTAG调试器,而JTAG的主要作用是改善系统的吞吐能力和性能。
  片上调试方面,Wind River可以提供独特的JTAG解决方案,也就是工作台片上调试(OCD),开发人员可以同时停止或者启动任何内核,在一个或者多个内核上设置断点,还可以包括条件断点。此外,Workbench EcUpse框架和基于代理的调试方式,使开发人员在单一控制台上即可管理多内核/多处理器应用的开发。
  开发人员可以在JTAG调试和基于代理调试二者之间灵活地选择,例如在硬件Bring-Up、内核、中间件和其他应用功能调试的时候采用JTAG连接,然后在自己认为适当的时候平滑地转移到基于代理的调试,而这些调试工作都是围绕着同一个应用的。这些能力都会增加不同开发人员之间的协同能力,同时改善异常问题的判定效率,从而加快整个开发与调试进程。
其他文献
一、发现问题    早上,我刚起来,发现妈妈正在洗电风扇。她一面咬牙切齿地擦洗粘满灰尘的风叶,一而汗水不断往下滴。  我看到了很难受,决定要解决这个问题,让灰尘在电风扇上自动消失。可是,为什么电风扇放置一段时间,上面就会布满了灰尘呢?又该如何除去它们呢?    二、研究过程    于是,我跑回自己的房间,开始全神贯注地观察房间里的旧电风扇。  我发现:安全罩前部分内侧的灰尘明显多于外侧的灰尘,而安
任何一个单一问题,都比较好解决。养老保险改革挑战在于,在解决这个问题的同时,却有可能恶化其他问题。  中央决定推进机关事业单位养老保险并轨改革,应当说是重大突破,但养老保险改革需要解决的问题远非并轨这一个。比如,城镇职工和企业养老保险缴费负担过重的问题,制度赡养率不断提高、养老保险基金保值增值的问题等。任何一个问题如果没有妥善解决,都可能影响到养老保险体系的公平性和可持续性。  但是,这些问题并不
罗源一中位于福州市罗源县凤城岐阳之北,东挹罗源湾碧波,南对莲花峰瑞霭,素有“凤鸣岐山”之说。前身为罗源县立初级中学,创办于1942年,1958年改称为“福建省罗源第一中学”,1959年
2012年4月,漳浦达志中学顺利跨入福建省“二级达标”重点中学行列。学校占地面积86667m^2,校园建筑面积32130m^2,绿地面积25000m^2,学生公寓食堂综合楼4700m^2,志谟图书馆3000m^2,
随着我国的对外开放,与各国之间的交流日益频繁。世界各国通讯、商贸、旅游等事业的迅猛发展,要求人们不仅需要知道当地或所在国的时间,而且也需要知道世界任一时区的时间。
总理心声 行大道 民为本 利天下  关于经济  第一,还是持续发展经济,打造中国经济的升级版。  偌大个中国要解决的事很多,如果说主要问题的话,我想:第一,还是持续发展经济。  未来中国经济环境依然严峻复杂,我们要居安思危,也要处变不惊,保持经济持续增长,防范通货膨胀,控制潜在风险,使中国经济不发生大的波动。  我们有巨大的内需。关键在推动经济转型,把改革的红利、内需的潜力、创新的活力叠加起来,形
夏天,蚊子较多,很多家庭喜欢点蚊香。可是我们睡着或离开了,蚊香还在燃烧,不仅浪费,还可能引发火灾。所以我想发明一种装置,蚊香点燃后能像电器一样定时,人离开时,即使忘记熄灭蚊香.蚊