除错装置的制作方法

文档序号:6593460阅读:122来源:国知局
专利名称:除错装置的制作方法
技术领域
本发明涉及一种用于程序中检测并确定故障位置的除错装置,特别是涉及一种可撷取大量计算机目标系统,如微处理器(Microproces sor)在真实环境下的执行状态等数据,并根据这些数据对系统性能、错误状态进行分析的除错装置。
背景技术
在一些具有完整的中央处理单元子程序的处理系统中,如微处理器,当系统在执行运作时,即会有大量的数据、地址等信息在不断进行双向传输,但由于系统程序中存在逻辑错误或考虑不周而导致程序运转发生的错误(bug),易导致系统产生死机而影响其运作功能。为改善并避免系统死机,通常是检测系统程序中是否存有错误或故障之处以及确定该故障位置,以达到除错(debug)的目的。
目前在系统的设计上有许多完善的工具,然而对于最终成品的除错上却未能有相对的改进,主要差异是在于设计时的目标都较为明确,但是在进行除错时则连错在哪里都不知道,更何况此时系统往往已经整合在一起,复杂度更是增加许多,造成使用者无法有效进行除错。有时只好利用监视器(watchdog)来监视某预定状态在系统内规定的时间内是否出现的事件,若属于正常事件的定时发生,则引导系统处理此事件,若有异常现象出现时,则通常是将系统重置(reset);但这仅能治标无法治本的监视器,根本无法彻底解决系统死机的问题。
另外,在嵌入式微处理器(embedded microprocessor)环境下,已知的程序除错可使用的工具有示波器(Scope)或是逻辑分析器(logicanalyzer)等仪器。以示波器及逻辑分析器而言,它们比较能发挥作用的场合都是在比较短时间、容易复制的情况下的除错;因为已经大略了解错误的方向,所以才能在可疑的地方设定触发条件,一旦有偶发性的错误或是长时间之后才发生错误的情况下,由于能记录的程序执行状态的时间有限,很难发现错误原因。
因此,本发明即在针对上述的困扰,提出一种可以不影响真实系统的执行,并可大量记录系统执行状态的除错装置。

发明内容
本发明的主要目的是提供一种可长时间对目标系统在真实环境下的执行状态进行记录、分析的除错装置,以根据其所记录的信息来进行系统性能分析与程序错误范围的判读。
本发明的另一目的是提供一种除错装置,其是将欲了解的地址(address)、数据(data)及输入/输出(I/O)等信息事先列表转换,提供使用者编辑设定,以便当目标系统执行而触发上述条件时,经由其相对应的代码或索引,可大大地降低相对应所需的记录容量、传输频宽,故可记录大量信息。
为实现上述目的,本发明包括一使用者接口,用以设定欲记录触发的数据,并将其传送至一触发事件转换器,使其对每一触发事件给予一个代码并进行逻辑简化后传送至一控制逻辑,以将该简化数据设定到一可编程比较器,且可编程比较器系接收目标系统的输入信号,藉以比对该输入信号是否符合事先设定的触发条件;经由可编程比较器比对条件符合的输入数据相对应的代码索引传给该控制逻辑,连同计时值存储至一存储装置中,一触发事件分析器自该存储装置读取数据,以便将该代码索引取出并还原为原设定的触发事件,并对其进行分析除错。
通过结合附图对本发明的具体实施例的详细说明,可更加容易了解本发明的目的、技术内容、特点及其所达到的功效。


图1为本发明的一较佳实施例示意图。
图2为图1的另一示意图。
图3为本发明所有模块整合在一起的实施例示意图。
具体实施例方式
本发明是与一主计算机连结,并连接至一目标系统,并依据使用者事先设定的地址(address)、数据(data)及输入/输出(I/O)等信息转换的索引(index),以撷取该目标系统执行时所触发的条件信息的索引并将其存储,以利使用者进行分析除错操作,故可大大地降低相对应所需的记录容量与传输频宽,进而记录大量信息。
如图1所示,现在要除错(debug)的目标系统是一个内有微处理器(microprocessor)12的专用集成电路(Application specific integratedcircuit,ASIC)10,其程序是放在一内存14中。由于该专用集成电路10在进行筛选电子组件的老化(burn-in)测试时,系统常会死机,却不知问题出自哪里,因此将此专用集成电路10连接至一除错装置20,以长时间记录程序流程,故可协助了解ASIC 10系统实际执行时的情况,进一步缩小问题的范围。
该除错装置20包括一使用者接口22,提供使用者可在其上进行触发条件编辑设定,设定的条件是所有想要分析的讯号,以条列式的方式记录,且该讯号是地址、数据及输入/输出的组合,并将欲记录触发(trigger)的数据传送至一触发事件转换器(Translator of Triggering Event)24。由于微处理器12的程序是经由编译器(complier)产生目标码(objectcode),再用连接器(linker)产生机器码(machine code)后,即会产生所有子程序(subroutine)的进入地址及离开地址,以此当作所有触发点;只要检测到内存读取的地址是其中一个,则可判断为微处理器12程序执行或离开某一子程序,故可将该些进入地址及离开地址等数据藉由该使用者接口22输入成触发条件。而后对所有的触发事件分别给予一个代码,且该转换器24会将该触发事件作逻辑简化后传送至一接口(interface)26,再通过传输接口传输到一控制逻辑(control logic)28;而控制逻辑28则依传输协议分别将该转换器24所传出的简化数据设定到一可编程比较器(Programmable Comparator)30,其包括一多重触发器(Multi-Trigger)32及一信号映像器(Signal Mapping)34,且该可编程比较器30连接并接收该ASIC 10目标系统的输入信号,以比对该输入信号是否符合事先设定触发条件的数据。该控制逻辑28连接一定时器(Timer)36,用以计时事件发生时间。
当微处理器12执行时,所有符合该触发事件的输入信号,即子程序的进入地址与离开地址,都会使可编程比较器30内的多重触发器32产生条件符合的信号给该控制逻辑28,此时该信号映像器34输出的信号即为这些触发事件所相对应的代码,则输出触发事件相对应的代码至控制逻辑28,使控制逻辑28将其所接收到的符合信号及触发事件代码索引等所有讯息连同定时器36所提供触发事件的发生时间传送回接口26,该接口2 6再将这些讯息数据存储至一存储装置(Storage)38中。当要了解过去微处理器12到底执行到哪里,使用者通过使用者接口22利用其所连接的一触发事件分析器(Analyzer of Triggering Event)40从该存储装置38中将数据取出、还原,使取出的代码索引还原为原本所设定的触发事件,以进行除错分析,即可了解ASIC 10内的微处理器12是否在某个子程序中跑不出来,是否中断有异常情况发生,是否程序跑到不该执行的地方等等;再加上定时器36,使得所有子程序的执行次数、执行时间也都可以得知,因而提供给使用者改善程序的依据。
在上述图1所示的实施例中,除了外接式存储装置38连接该接口26与触发事件分析器40之外,基于存储容量及频宽需求的考虑,本发明亦可将存储装置38直接连接至该控制逻辑28,如图2所示,则该控制逻辑28可将其所接收到的所有讯息及时间值直接存储在存储装置38中,无须再藉由接口26传递;反之,当使用者通过使用者接口22要进行分析除错时,该触发事件分析器40则必须先经由接口26及控制逻辑28后,才能从该存储装置38中将数据取出、还原,以便进行除错分析。
上述二个实施例是利用一接口26将前后二部份的模块(Module)整合在一起,以提供两者传输数据之用。本发明亦可不藉由该接口26而直接将所有模块整合在一起;如图3所示,控制逻辑28直接连接至触发事件转换器24,该转换器24将该触发事件作逻辑简化后直接传送至控制逻辑28;控制逻辑28可将接收到的所有讯息及时间值直接存储在存储装置38中,且触发事件分析器40亦可直接从存储装置38中将数据取出、还原,以进行除错分析,其余的详细说明则与图1的实施例相同,在此不再赘述。
其中,本发明可将部份对速度要求较高的部份,如可编程比较器30的多重触发器32及信号映像器34,直接内建于目标系统的集成电路(IC)中。且在该可编程比较器的前端还可增设一模拟-数字转换器(analog todigital converter,ADC),使其可对所有过大或过小层级(level)的信号记录下来。
前述除错装置除了以单一触发条件为设定方式之外,该触发方式亦可为多重触发,其是先利用可编程比较器30完成设定触发事件1~N,当该输入信号先后依序发生该事件1至事件N后,即表示是真正的触发;如此,针对特定的事件模式(event pattern)亦可实时记录,不用等到事后分析,因此特别用于串行接口(serial interface)的除错。且该触发事件模式可同时设定多组存在,而使用者接口22则可提供此状态转变(statetransition)的编辑之用。
本发明的除错装置是将欲了解的地址、数据及输入/输出等信息事先列表转换成代码索引,提供使用者编辑设定,以便当目标系统执行而触发上述条件时,经由其相对应的索引,可大大地降低相对应所需的记录容量、传输频宽,且由于本发明仅针对要分析的情况来设定条件,其它中间过程的讯号都可以被省略,故可记录大量信息。换言之,假设平均每个子程序含有100个微处理指令(instruction),则平均100个指令只要记录一笔,所以记录的处理速度只要1/100,记录的数据量也只要1/100;再加上只要记录触发事件的代码即可,存储的数据量还可进一步的减少,使得本发明可长时间对目标系统在真实环境下的执行状态进行记录、分析,并根据其所记录的信息来进行程序错误范围的判读。
再者,本发明亦可利用上述原理及处理方式进行系统性能分析,使其无须再另外加讯号线进行分析,在进行程序性能分析时,除错装置可将进出每一程序、子程序的时间点记录起来,进而判断每(某)一执行步骤所需操作的时间,并依据该时间长短来进行性能分析。因此,本发明不但能够对系统错误状态进行除错判读,并可依需要同时对系统进行性能分析。
建立在本发明的主要架构下,本发明的应用范围相当广泛,例如连接到目标系统的外部装置,并对目标系统电路板上的集成电路(IC)下一命令(command),去填入该IC内的寄存器(register),此时即可将触发信号设成寄存器写入以及相对应的数据/地址,如此就可以得知该IC是否被设定为错误(error)的状态。亦可应用在DVD播放器(player)或MPEG译码器(decoder)等媒体,当其对伺服机构(servo)下一ATAPI命令时,即可对所有的ATAPI命令予以触发,由此即可得知是否有不对的命令或是命令的先后顺序有错。另外,定时器是可编程比较器的输入之一,亦可以利用此计时间隔的过长或过短来判断是否有某个装置总线(device bus)产生锁住(lock)或冲突错误。
以上所述的实施例仅是为了说明本发明的技术思想及特点,其目的在使本领域的技术人员能够了解本发明的内容并据以实施,而不能以此限定本发明的权利要求范围,凡依本发明所披露的精神所作的均等变化或修饰,均应涵盖在本发明的权利要求范围内。
权利要求
1.一种除错装置,其连接至一目标系统,以撷取该目标系统的信息进行分析除错操作,该除错装置包括一控制逻辑,用以输出一欲纪录的触发事件的简化数据;一可编程比较器,其连接并接收该目标系统的输入信号,且该控制逻辑是将该简化数据设定于该可编程比较器中,以比对该输入信号是否符合事先设定的数据,使条件符合的输入数据的相对应的代码索引传送给该控制逻辑;一存储装置,用以将该可编程比较器传送给该控制逻辑的代码索引存储至此;以及一分析器,可从该存储装置将该代码索引取出并还原为原本设定的触发事件。
2.如权利要求1所述的除错装置,其中该可编程比较器包括一多重触发器及一信号映像器,且该多重触发器产生条件符合的信号给该控制逻辑,而该信号映像器则输出触发事件相对应的代码。
3.如权利要求1或2所述的除错装置,其中该设定数据的条件是将所有欲分析的讯号以条列式的方式记录,且该讯号是地址、数据及输入/输出的组合。
4.如权利要求1所述的除错装置,其中该控制逻辑还连接一定时器,提供该控制逻辑触发事件发生的时间。
5.如权利要求1所述的除错装置,其中还可将对速度要求较高的该可编程比较器部份直接内建于一集成电路中。
6.如权利要求1所述的除错装置,其中该触发方式可为多重触发,先设定触发事件1~N,当该输入信号依序发生该事件1~N后,即表示是真正的触发。
7.如权利要求6所述的除错装置,其中该多重触发设定藉由该可编程比较器完成。
8.如权利要求1或4所述的除错装置,其中该定时器可设定为该可编程比较器的输入之一,以利用该输入信号时间的过长或过短来判断是否产生冲突或错误。
9.如权利要求1所述的除错装置,其中该可编程比较器的前端还设有一模拟-数字转换器。
10.如权利要求1所述的除错装置,还包含一使用者接口,用以设定该欲记录的触发事件的数据;以及一转换器,其接收该使用者接口送出的触发事件数据,且对该触发事件分别给予一代码,并将其逻辑简化。
11.如权利要求10所述的除错装置,其中在该控制逻辑与该转换器之间还设有一接口,提供两者传输数据之用。
12.如权利要求1或11所述的除错装置,其中该存储装置也可通过该接口进行数据的存取。
全文摘要
本发明提供一种除错装置,其是撷取一目标系统的信息进行分析除错操作。此除错装置包括一使用者接口,用以设定欲记录触发的数据,并将该数据传送至一触发事件转换器,对每一触发事件给予一个代码并作逻辑简化后传送至一控制逻辑,以将该简化数据设定到一可编程比较器,且可编程比较器接收目标系统的输入信号,以比对该输入信号是否符合事先设定的触发条件;经由可编程比较器比对条件符合的输入数据的相对应的代码索引传给该控制逻辑并存储至一存储装置中,分析器从该存储装置将该代码索引取出并还原为原设定的触发事件,以撷取大量目标系统在真实环境下的执行状态,并对其进行分析除错。
文档编号G06F11/00GK1479204SQ02142228
公开日2004年3月3日 申请日期2002年8月26日 优先权日2002年8月26日
发明者王文信 申请人:联发科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1