多内核和多线程SoC带来新的调试挑战.doc

多内核和多线程SoC带来新的调试挑战.doc

ID:29009000

大小:165.50 KB

页数:6页

时间:2018-12-15

多内核和多线程SoC带来新的调试挑战.doc_第1页
多内核和多线程SoC带来新的调试挑战.doc_第2页
多内核和多线程SoC带来新的调试挑战.doc_第3页
多内核和多线程SoC带来新的调试挑战.doc_第4页
多内核和多线程SoC带来新的调试挑战.doc_第5页
资源描述:

《多内核和多线程SoC带来新的调试挑战.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、多内核和多线程SoC带来新的调试挑战作者:MIPS公司高级软件工程师EarlMitchell 来源:电子产品世界 发布时间:2007-03-1609:53 评论:0条 阅读:108次发给好友  2005年,MIPS收购了FS2,满足客户有关调试支持要求FS2作为MIPS科技的一个部门其先的系统级测试、调试和跟踪能力。FS2的在线仪技术为SoC内部工作提供深入系统级可视性这是保证设计成功和加快上市时间的关键。两公司合开发了PDtrace?(程序和数据踪)和踪,用于MIPS324KE24K24KE以及最新的34K多线程处理器系列。除了PDtrace技术,FS2为嵌入

2、式系统开发及调试提供系统导航(SystemNavigator)。FS2还为先处理器总线系统级分析IP和工具。  有经验的开发人员都知道,好的工具支持对于嵌入式产品的实现、调试和维护的成功至关重要。SoC设计对好的工具支持提出了一系列重要的挑战。一些问题可以归结为SoC设计中使用的元件的可存取性及可视性的本质上的下降;另一些则是因为软硬件不断增加的复杂性。尤其是,SoC设计中更多使用的并发将带来现有工具无法进行调试的问题。这些并发技术并不新,但是在大多数情况下,相对于台式和企业(超级计算)产品来说,并发技术在嵌入式设计中的应用一直十分有限。  开发人员需要及早了解

3、设计过程中的类似问题,以保证他们拥有足以应对产品开发后期出现的这些挑战的工具。基于SoC的设计主要依赖于片上调试支持。大多数处理器内核厂商都不自行开发工具。不过,他们仍需提供必要的片上调试支持,以推动这类调试工具的发展。SoC设计中的并发用来增加各种多媒体、网络和通信产品的性能及可扩展性。多任务处理和多线程是通过CPU分时来模拟并发的技术。分时由一个管理多任务或多线程之间上下文转换的调度程序进行控制。进程、任务和线程三个术语有时可以通用,其实三者之间有着细微的区别。任务是可以暂停或重新开始的一连串指令。多任务可以或不可以共享同一个地址空间(即可进入其他任务的文本

4、、数据和整个区域)。一个任务的状态由其上下文表示,它可以“快照(Snapshot)”处理器状态。  快照可记录程序计数器、堆栈相关的寄存器、各种通用寄存器,以及一些与特权模式和异常处理有关的特定内核寄存器。调度程序利用上下文记录延缓和进行任务恢复。单线程是任务的一种实例模式,线程组是相同任务的多实例模式。同组线程共享相同的程序空间和上下文状态。利用线程的优势在于调度程序能够使用一个线程组内的共享上下文更快地执行该组的上下文转换。也就是说,在线程组内的上下文之间进行转换时,调度程序不必占用很多寄存器。某些RTOS厂商仅支持任务模型,而另一些则支持线程模型。  一个

5、进程是运行于一个操作系统的任务,后者采用MMU以防止其他任务进入存储区域。运行于这种操作系统上的线程称为轻量级进程,而且它可以共享虚拟地址空间。轻量级进程可释放存储器保护限制,其行为更像任务。例如,调度程序能够利用共享程序空间,通过将信息传送给指示器而非复制全部信息来加速进程间通信。而且,共享程序空间可更有效利用存储器并提高高速缓存的命中率。这种进程模型是Linux等“全功能”OS采用的模式,它是嵌入式应用的普遍选择。某些像Java这样的平台可提供其自身应用水平的线程调度程序,但这些平台可以简单地将应用线程映射到OS水平的任务或线程。图1采用并发多级设计的典型S

6、oC  用于硬件设计的并发技术通过多指令流水线增强性能,从而可减少共享资源的闲置周期(如流水线、总线等),并通过多内核分配处理负载。通常,增加更多内核可比减少时钟频率获得更多的处理能力。多内核SoC包括通用CPU、DSP和专用内核的组合。某些内核可提供多线程支持以增加CPU的利用率,并提高上下文转换的性能。  内核厂商正在用两类多线程微处理器架构进行实验。第一种是为以多虚拟处理器单元而非物理处理器形式出现的OS提供的额外逻辑。这种想法可在当前的线程运行时,利用第二线程实现闲置单元的利用。第二种类型是在当前的线程停止时,通过发出来自不同线程的指令,使用内部调度算法

7、来减少闲置流水线周期。问题在于选择新线程进行转换时,应该采用什么标准?为避免QoS问题,需要采用基于优先权的方法,而且它必须可以由OS调度程序控制。  任何调试的目的都是找出问题所在。为发现多任务处理、多线程、多内核系统的问题,调试人员必须明确任务和线程意识,以帮助开发人员是甄别出哪种问题是由线程执行引起的。他们也要具有并发的执行控制能力和大量的跟踪信息。所有这些功能都需要片上支持来实现。任务和线程意识  某些调试器具备足够的智能,可以访问存储器OS核的数据结构,或者利用由OS提供的API找回任务线程状态信息。这种方法限于特定OS的情况,在执行暂停时,它只能访问

8、状态信息。任务和线程意识

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。