基于片上网络互联的SoC调试技术研究

基于片上网络互联的SoC调试技术研究

论文摘要

随着半导体技术的不断进步,在芯片集成度和设计复杂度越来越高的今天,将整个系统集成在一个硅片上的片上系统(SoC:System-on-a-Chip),已经成为主流的设计方法。SoC利用IP(Intellectual Property)重用的思想,将处理器内核(如CPU和DSP),存储器,基础IP,用户自定义逻辑(UDL)等模块,通过总线等互联机制连接起来,在一个芯片内实现了系统的功能。SoC在性能、成本和功耗等方面的优势使其广泛应用于移动手持设备、通信网络设备、数字电视和消费电子产品当中。SoC通常是非常复杂的系统,在这样一个系统的设计和实现过程中出现失误在所难免。尽管SoC的验证技术取得了长足的进步,在验证上花费的代价也越来越大,但要实现SoC设计的一次成功是极为困难的。如果SoC中出现硬件或者软件的错误,就需要通过各种手段对其进行调试(Debug),以发现导致错误的根源。因此,能够提高调试质量(Debug Quality)的SoC调试技术是减少软硬件调试时间和成本的关键。另一方面,随着工艺尺寸的不断缩小和片上通信要求的提高,共享总线的构架已经很难满足SoC的通信需求。片上网络(NoC:Network-on-Chip)技术,将计算机网络领域的一些成熟经验应用于SoC之中,利用基于包的微网络(mirco-network)实现片上通信,可以较好的解决总线面临的问题。因此,NoC被认为最有希望取代总线成为未来大规模SoC中的互联机制。然而,多数现有的调试技术和构架仍然以基于总线的SoC为对象,并没有考虑到NoC的特点。但实际上,NoC和共享总线的本质区别改变了现有调试技术应用的环境,使得这些技术很难有效的在基于NoC的SoC中使用。本文的工作就是针对基于NoC的SoC调试这一新课题,以调试需求和新的挑战为出发点,深入的研究了几个重要的调试技术问题,并提出相应的解决方案。本文的工作主要集中在以下几个方面:■首先,讨论了SoC调试的需求和目前常见调试技术,并在此基础上分析了NoC的引入给调试带来的新挑战;结合这个领域中的研究现状,提出了本文主要的研究对象,并简单介绍了本文工作的成果。(第1章)■充分考虑了NoC技术的特点,提出一个完整的基于NoC的SoC调试平台。该平台由片上调试构架(主要包括调试代理和调试探测器)、片外调试控制器和调试控制软件构成,是其它研究工作的基础;然后,在该平台的框架内,分析了各个组件的功能模型和协同工作机制;此外,还根据这个调试平台,建立了一个实验仿真环境,用来对本文提出的调试技术进行验证;最后,通过和现有调试技术的对比,证明了该调试平台的新颖性和有效性。(第2章)■对调试代理(Debug Agent)和调试探测器(Debug Probe)进行了更深入的研究。调试代理DA是片上调试构架的接入点,直接连接芯片的调试接口和跟踪接口,提供了访问片上所有调试资源的调试和跟踪通道(第3章)。调试探测器DP位于待调试的内核和NoC之间,用来实现对内核的调试和跟踪。它同时还可以对内核间的通信进行调试,并支持多核同步调试和交叉触发的应用(第4章)。最后,还分别对调试代理和调试探测器的实验设计进行了仿真和综合,仿真结果验证了各项关键技术,而对综合结果的分析证明了它们在面积开销方面的有效性。■对SoC调试中两个涉及多个内核的调试问题:“多核同步调试”和“多核交叉触发”提出了相应的对策。设计了一个多核调试命令的调度算法,通过计算和控制调试命令执行的时间,实现了多核调试命令的同步执行(第5章);另外,提出并详细分析了两种实现多核交叉触发的策略:多步调试策略和“带内”触发消息传递机制,很好的解决了特定调试应用中的交叉触发问题(第6章)。■最后,对所做的研究工作进行了总结,并简单介绍了这一领域中其它一些有价值的研究方向。(第7章)

论文目录

  • 摘要
  • Abstract
  • 目录
  • 第1章 绪论
  • 1.1 片上系统(SoC)概述
  • 1.2 SoC调试的需求和挑战
  • 1.3 SoC调试技术背景
  • 1.3.1 调试与测试的关系
  • 1.3.2 典型的SoC调试环境
  • 1.3.3 SoC片上调试设计
  • 1.3.4 SoC调试构架实例(ARM CoreSight)
  • 1.4 NoC的引入对SoC调试的影响
  • 1.4.1 NoC技术背景
  • 1.4.2 NoC对SoC调试的影响
  • 1.5 相关研究机构及研究现状
  • 1.6 本文的研究对象和创新点
  • 第2章 基于NoC的SoC调试平台
  • 2.1 调试平台功能模型
  • 2.2 调试控制软件
  • 2.2.1 软件功能
  • 2.2.2 调试资源编程模型
  • 2.3 片外调试控制器
  • 2.4 片上调试构架
  • 2.5 如何调试NoC?
  • 2.5.1 在何处插入测试点?
  • 2.5.2 调试NoC的粒度
  • 2.5.3 NoC调试设计的实现
  • 2.6 研究方法和仿真环境
  • 2.7 调试平台和现有技术的对比
  • 第3章 芯片级调试代理(Debug Agent)
  • 3.1 DA的功能模型
  • 3.2 DA实现调试和跟踪通路的基本机制
  • 3.2.1 “透明”传输方法
  • 3.2.2 存储转发方法
  • 3.3 DA调试通道
  • 3.3.1 符合IEEE1149.1标准的TAP控制器
  • 3.3.2 通过JTAG接口输入调试命令
  • 3.3.3 改进的JTAG接口写操作
  • 3.3.4 OCP主设备接口
  • 3.4 片上实时跟踪数据的传输以及DA的跟踪通道
  • 3.4.1 片上实时跟踪数据的传输机制
  • 3.4.2 多个跟踪数据流的复用
  • 3.4.3 跟踪数据流的流量控制
  • 3.4.4 Flushing功能
  • 3.4.5 跟踪接口
  • 3.5 DA设计的仿真验证和综合结果
  • 3.5.1 调试通道功能的验证
  • 3.5.2 跟踪通道功能的验证及缓存状态分析
  • 3.5.3 DA综合结果分析
  • 第4章 支持多核调试及事务级调试的可配置调试探测器(Debug Probe)
  • 4.1 DP功能概述
  • 4.2 事务级分析和记录
  • 4.2.1 OCP通信事务的分析方法
  • 4.2.2 通信事务的记录
  • 4.2.3 通信事务记录的缓存和读出策略
  • 4.2.4 本地和远端触发消息的生成
  • 4.3 调试延时控制
  • 4.4 内核调试
  • 4.5 内核跟踪
  • 4.6 DP的可扩展性和可配置性
  • 4.6.1 DP可扩展性设计
  • 4.6.2 DP的动态配置和编程模型
  • 4.7 实验结果
  • 4.7.1 DP实验设计的仿真结果分析
  • 4.7.2 DP综合结果的分析
  • 第5章 多核调试命令调度
  • 5.1 调试命令执行的时间模型
  • 5.1.1 多核同步调试方法和调试命令调度
  • 5.1.2 调试命令延时数据库
  • 5.1.3 对于多时钟情况的讨论
  • 5.2 多核同步调试的仿真结果分析
  • 5.3 实现延时补偿算法的代价分析
  • 第6章 NoC环境中的交叉触发研究
  • 6.1 交叉触发功能深入分析
  • 6.1.1 触发源
  • 6.1.2 触发点
  • 6.1.3 触发消息传递机制
  • 6.2 多步调试实现交叉触发的策略
  • 6.3 基于通信事务的交叉触发
  • 6.3.1 实例分析
  • 6.3.2 “带内”触发消息传输机制
  • 6.3.3 在NoC环境中的应用
  • 6.3.4 代价分析
  • 第7章 总结与展望
  • 7.1 对已完成工作的总结
  • 7.2 该方向有待研究的其它课题
  • 7.2.1 对于不确定性错误的调试
  • 7.2.2 多触发源的交叉触发问题
  • 7.2.3 软硬件协同调试
  • 7.2.4 DfD的标准化和设计自动化
  • 7.2.5 其它一些交叉研究方向
  • 参考文献
  • 缩略语
  • 致谢
  • 攻读博士期间发表或已投的论文及专著
  • 相关论文文献

    标签:;  ;  ;  ;  ;  ;  ;  ;  

    基于片上网络互联的SoC调试技术研究
    下载Doc文档

    猜你喜欢