关于基于动态连续数据的GPU调试系统的设计和实现.doc
《关于基于动态连续数据的GPU调试系统的设计和实现.doc》由会员分享,可在线阅读,更多相关《关于基于动态连续数据的GPU调试系统的设计和实现.doc(5页珍藏版)》请在三一文库上搜索。
1、关于基于动态连续数据的GPU调试系统的设计和实现0 引言随着GPU技术的发展,GPU结构变得越来越复杂,对硬件的调试成为一个越来越困难的任务。硬件调试的困难在于硬件本身的不透明性。在发生问题的时候,工程师没有办法像软件调试那样,看到硬件内部发生了什么,也不能像软件调试那样,半路设一个断点,把硬件停下来。为方便对硬件的调试,GPU设计人员开发出很多种硬件调试方法来降低硬件调试的难度,传统上有DebugBus、扫描路径法、ARM CoreSightTM技术。这些方法的目的都是用某种方法将硬件内部信息暴露给工程师,降低硬件的不透明性,但其暴露出的信息都是硬件内部某个时间点的静态信息,对硬件工程师的帮
2、助是有限的。本文提出一种新的调试架构,相对于传统技术,它能够提供一段时间内的动态数据给工程师,让工程师能够了解在这段时间内硬件内部状况是如何变化的,使得工程师能迅速定位到造成问题的异常变化。甚至更进一步,工程师可以将得到的信息导入模拟环境,在模拟环境里面重现硬件的问题。1 传统硬件调试方式及其缺陷1.1 DebugBusDebugBus技术是最早在芯片设计中引进的调试技术1-2。其基本原理是在硬件设计中添加一批状态寄存器,每个模块都把自己的状态编码后送到这个状态寄存器中。当发生问题的时候,工程师读取状态寄存器中的状态码,从而可以分析问题发生的原因。DebugBus技术缺陷在于,状态寄存器的位是
3、有限的,所以能反映模块的状态也是有限的,工程师通过状态码只能大概了解模块的真实情况。1.2 基于扫描路径法的可测性设计技术基于扫描路径法的可测性设计技术是可测性设计(DFT)技术的一个重要方法3-5,这种方法能够从芯片外部设定电路中各个触发器的状态,并通过简单的扫描链设计,扫描观测触发器是否工作在正常状态,以此来检测电路的正确性。这种技术的缺陷在于它速度太慢,因为它是一个串行的操作,不能一次读出全部数据,导致工程师不能得到一个即时的数据6。1.3 ARM CoreSightTM技术CoreSightTM技术是ARM公司在2004年推出的一个新的调试体系架构,以提供更为强大的调试能力7。Core
4、SightTM技术比较适合于软件调试,因为它提供给工程师的是模块之间的指令和寄存器传递序列,软件工程师可以知道自己送给硬件的命令是如何在硬件各个模块之间传递。但硬件开发工程师更多的是想了解模块和模块之间完整的会话信息,甚至是模块内部的一些信号8-9。2 新调试系统硬件部分对于硬件开发工程师来说,要调试硬件问题需要得到大量硬件内部模块和模块之间的会话信息,这些信息最好是某个时间段内连续的信息,而不是简单的某个时间点的信息。但是要把所有这些信息收集给调试人员,就需要解决两个问题:第一,每个时钟周期产生的信息是大量的,为了不影响后面的时序,必须在一个时钟周期内处理完。但硬件带宽的限制又决定了这些不可
5、能在一个周期内处理完。这也是过去技术上只能提供简略信息的主要原因。第二,由于每个时钟周期都产生大量的信息,因此我们要处理的整体信息量非常巨大,导致这些信息的存储就是一个问题。为了解决这些问题,设计了一个双时钟系统。当我们发现需要存储信息的时候,我们就把全局时钟停止,从而使得各个模块停止工作。同时我们用另外一套时钟系统驱动调试模块收集和压缩信息。当信息收集完成以后,就把相关的数据发送到存储模块去存储。当存储完成时候,再重新激活全局时钟,让各个模块继续工作。由于采用了双时钟系统,提供了足够的时间来进行信息的收集和存储。因此在存储媒介上,我们放弃了价格昂贵但容量偏小的闪存,而是选择了从板载内存中分配
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关于 基于 动态 连续 数据 GPU 调试 系统 设计 实现
链接地址:https://www.31doc.com/p-3388185.html